<html>
<head><meta charset="utf-8"><title>perf.rlo benchmarks · t-compiler/wg-nll · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/index.html">t-compiler/wg-nll</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html">perf.rlo benchmarks</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="128834738"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/128834738" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#128834738">(Jun 29 2018 at 15:37)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> Do you think it's time to enable more of the currently disabled for NLL crates on perf? We've lowered the max to ~300% now, and I think you have further fixes in the works. I'm uncertain whether it'd be helpful to enable a few more -- what do you think?</p>



<a name="128838954"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/128838954" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#128838954">(Jun 29 2018 at 17:04)</a>:</h4>
<p>can't hurt, I suppose =) I'm still only profiling a subset of what we have, but having a better "overall picture" would be good</p>



<a name="128839441"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/128839441" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#128839441">(Jun 29 2018 at 17:15)</a>:</h4>
<p>btw, I guess some of those perf runs may have completed by now? I guess I should just test, eh?</p>



<a name="128839442"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/128839442" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#128839442">(Jun 29 2018 at 17:15)</a>:</h4>
<p>it'd be so nice if the queue were visible :)</p>



<a name="128839494"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/128839494" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#128839494">(Jun 29 2018 at 17:16)</a>:</h4>
<p>I don't think they have</p>



<a name="128839515"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/128839515" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#128839515">(Jun 29 2018 at 17:17)</a>:</h4>
<p>looks like no</p>



<a name="128839629"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/128839629" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#128839629">(Jun 29 2018 at 17:19)</a>:</h4>
<p>They should start in around an hour and then it'll be ~6 hours before they all finish</p>



<a name="128839643"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/128839643" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#128839643">(Jun 29 2018 at 17:19)</a>:</h4>
<p>heh, ok</p>



<a name="128926033"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/128926033" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#128926033">(Jul 01 2018 at 16:38)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> New project for you: <code>tuple-stress    17,715,830,784.00   2,917,195,841,536.00    16,466.60%</code></p>



<a name="128926036"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/128926036" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#128926036">(Jul 01 2018 at 16:38)</a>:</h4>
<p>cc <span class="user-mention" data-user-id="116113">@lqd</span></p>



<a name="128926044"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/128926044" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#128926044">(Jul 01 2018 at 16:39)</a>:</h4>
<p>lol</p>



<a name="128926045"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/128926045" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#128926045">(Jul 01 2018 at 16:39)</a>:</h4>
<p>80x worse time-wise</p>



<a name="128926112"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/128926112" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#128926112">(Jul 01 2018 at 16:40)</a>:</h4>
<p>IIRC it's a very synthetic test, not extracted from real code ?</p>



<a name="128926117"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/128926117" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#128926117">(Jul 01 2018 at 16:40)</a>:</h4>
<p>Yes, but I've seen cases of similar code in std library and elsewhere</p>



<a name="128926118"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/128926118" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#128926118">(Jul 01 2018 at 16:40)</a>:</h4>
<p>(less extreme -- but still similar)</p>



<a name="128926124"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/128926124" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#128926124">(Jul 01 2018 at 16:41)</a>:</h4>
<p>oh interesting</p>



<a name="128926169"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/128926169" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#128926169">(Jul 01 2018 at 16:42)</a>:</h4>
<p>it's a program with ~65k lines of tuples; the type of the static is  <code>[(i32, (f64, f64, f64)); 0xffff]</code></p>



<a name="128926175"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/128926175" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#128926175">(Jul 01 2018 at 16:43)</a>:</h4>
<p>But technically I don't see why NLL would need to spend so much time on verifying this since there's no particular behavior that looks relevant to NLL (i.e., it's all constant data)</p>



<a name="128926180"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/128926180" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#128926180">(Jul 01 2018 at 16:43)</a>:</h4>
<p>at least this one doesn't OOM :) I'll try and see what callgrind says — that is to say the valgrind run will take at least 800x longer</p>



<a name="128926221"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/128926221" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#128926221">(Jul 01 2018 at 16:44)</a>:</h4>
<p>it's probably doing the same thing over and over again</p>



<a name="128926226"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/128926226" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#128926226">(Jul 01 2018 at 16:45)</a>:</h4>
<p>yeah, and not caching it</p>



<a name="128926232"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/128926232" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#128926232">(Jul 01 2018 at 16:45)</a>:</h4>
<p>IIRC it was the case for the previous outlier (coercions?) which was at 1000% until niko's caching PR landed</p>



<a name="128926330"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/128926330" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#128926330">(Jul 01 2018 at 16:48)</a>:</h4>
<p>The good news is that the other benchmark I enabled (<a href="http://crates.io" target="_blank" title="http://crates.io">crates.io</a>) is only 123% of clean so much better</p>



<a name="128926337"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/128926337" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#128926337">(Jul 01 2018 at 16:49)</a>:</h4>
<p>were they disabled because of performance problems at the time ?</p>



<a name="128926389"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/128926389" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#128926389">(Jul 01 2018 at 16:51)</a>:</h4>
<p>good news indeed for <a href="http://crates.io" target="_blank" title="http://crates.io">crates.io</a>, that's not so bad :)</p>



<a name="128926396"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/128926396" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#128926396">(Jul 01 2018 at 16:51)</a>:</h4>
<p>Somewhat, I think so</p>



<a name="128926438"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/128926438" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#128926438">(Jul 01 2018 at 16:52)</a>:</h4>
<p>Before we enable NLL by default we'd want to make sure it's performant enough across the suite of benchmarks we do have though I think</p>



<a name="128926449"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/128926449" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#128926449">(Jul 01 2018 at 16:53)</a>:</h4>
<p>yeah, and thanks for looking at those on perf.rlo</p>



<a name="128967168"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/128967168" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#128967168">(Jul 02 2018 at 14:38)</a>:</h4>
<p>for those following at home, <code>tuple-stress</code> took around 3 hours in callgrind :) and it seems 97% is in liveness (of which the work seems to be split in between a couple different<code>rustc::ty::fold::TypeFoldable</code> visit fns, and a closure inside MIR borrowck's <code>add_liveness_constraints</code>)</p>



<a name="128970684"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/128970684" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#128970684">(Jul 02 2018 at 15:37)</a>:</h4>
<p><span class="user-mention" data-user-id="116113">@lqd</span> huh. which SHA are you benchmarking?</p>



<a name="128970755"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/128970755" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#128970755">(Jul 02 2018 at 15:38)</a>:</h4>
<p>this morning's 45935640f058405c95c96308f3acfd5ac1535698</p>



<a name="128970924"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/128970924" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#128970924">(Jul 02 2018 at 15:41)</a>:</h4>
<p>ok, I wonder if <a href="https://github.com/rust-lang/rust/pull/51896" target="_blank" title="https://github.com/rust-lang/rust/pull/51896">https://github.com/rust-lang/rust/pull/51896</a> will help</p>



<a name="128970927"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/128970927" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#128970927">(Jul 02 2018 at 15:41)</a>:</h4>
<p>I'm curious though why it's spending so much time in folding</p>



<a name="128970931"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/128970931" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#128970931">(Jul 02 2018 at 15:42)</a>:</h4>
<p>perhaps you mean a different liveness code than I meant :)</p>



<a name="128970982"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/128970982" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#128970982">(Jul 02 2018 at 15:42)</a>:</h4>
<p>ah, I guess you mean the "liveness constraint" code</p>



<a name="128970990"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/128970990" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#128970990">(Jul 02 2018 at 15:42)</a>:</h4>
<p>I should do a quick perf profile</p>



<a name="128970999"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/128970999" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#128970999">(Jul 02 2018 at 15:42)</a>:</h4>
<p>yeah somewhere in liveness indeed ;)</p>



<a name="128971023"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/128971023" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#128971023">(Jul 02 2018 at 15:43)</a>:</h4>
<p>I rewrote region inference over the weekend ;) hoping to open a PR soon, I've <em>just</em> gotten it compiling (haven't even run the tests yet)... should be faster though, I would <strong>think</strong>...</p>



<a name="128971034"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/128971034" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#128971034">(Jul 02 2018 at 15:43)</a>:</h4>
<p>now computing the SCCs instead of just iterating to fixed point</p>



<a name="128971080"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/128971080" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#128971080">(Jul 02 2018 at 15:44)</a>:</h4>
<p>sounds fast just talking about it :)</p>



<a name="128971124"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/128971124" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#128971124">(Jul 02 2018 at 15:44)</a>:</h4>
<p>do you want me to check with the dirty list PR ? (or do you already have a build with it?)</p>



<a name="128971172"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/128971172" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#128971172">(Jul 02 2018 at 15:45)</a>:</h4>
<p>(I can look at the profile again to be more precise about the bits of liveness I was casually mentioning)</p>



<a name="128971252"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/128971252" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#128971252">(Jul 02 2018 at 15:46)</a>:</h4>
<p>I don't think the PR will help</p>



<a name="128971261"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/128971261" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#128971261">(Jul 02 2018 at 15:46)</a>:</h4>
<p>if you have the profile around though</p>



<a name="128971263"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/128971263" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#128971263">(Jul 02 2018 at 15:46)</a>:</h4>
<p>and can cite the actual fn names</p>



<a name="128971268"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/128971268" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#128971268">(Jul 02 2018 at 15:46)</a>:</h4>
<p>that might be helpful</p>



<a name="128971378"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/128971378" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#128971378">(Jul 02 2018 at 15:48)</a>:</h4>
<p>its a bit mangled + it's a closure but this is the 12% of time spent in liveness <a href="/user_uploads/4715/PhNjhyjOABUJDx7uZwh0uAX1/pasted_image.png" target="_blank" title="pasted_image.png">pasted image</a></p>
<div class="message_inline_image"><a href="/user_uploads/4715/PhNjhyjOABUJDx7uZwh0uAX1/pasted_image.png" target="_blank" title="pasted image"><img src="/user_uploads/4715/PhNjhyjOABUJDx7uZwh0uAX1/pasted_image.png"></a></div>



<a name="128971393"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/128971393" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#128971393">(Jul 02 2018 at 15:48)</a>:</h4>
<p>yep, ok. Curious.</p>



<a name="128971396"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/128971396" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#128971396">(Jul 02 2018 at 15:48)</a>:</h4>
<p>the rest are all in TypeFoldable</p>



<a name="128971432"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/128971432" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#128971432">(Jul 02 2018 at 15:49)</a>:</h4>
<p>(so I'm guessing visits of some kind, <code>visit_with</code> and <code>super_visit_with</code>)</p>



<a name="128971511"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/128971511" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#128971511">(Jul 02 2018 at 15:50)</a>:</h4>
<p>could be the canonicalization logic</p>



<a name="128971515"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/128971515" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#128971515">(Jul 02 2018 at 15:50)</a>:</h4>
<p>lots of stuff builds on type-foldable really</p>



<a name="128971519"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/128971519" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#128971519">(Jul 02 2018 at 15:50)</a>:</h4>
<p>I guess I can do a profile of my own readily enough</p>



<a name="128971558"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/128971558" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#128971558">(Jul 02 2018 at 15:51)</a>:</h4>
<p>btw did you see this weekend's other "interesting discovery" of the memory consumption in the html5ever benchmark ?</p>



<a name="128971655"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/128971655" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#128971655">(Jul 02 2018 at 15:52)</a>:</h4>
<p>I saw that there was a lot of memory consumption</p>



<a name="128971657"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/128971657" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#128971657">(Jul 02 2018 at 15:52)</a>:</h4>
<p>did we track down cause at all?</p>



<a name="128971662"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/128971662" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#128971662">(Jul 02 2018 at 15:52)</a>:</h4>
<p>I don't think so no</p>



<a name="128971697"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/128971697" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#128971697">(Jul 02 2018 at 15:53)</a>:</h4>
<p>ok</p>



<a name="128973982"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/128973982" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#128973982">(Jul 02 2018 at 16:35)</a>:</h4>
<p><span class="user-mention" data-user-id="116113">@lqd</span> in case you are curious, this is the region inference work I was talking about <a href="https://github.com/rust-lang/rust/pull/51987" target="_blank" title="https://github.com/rust-lang/rust/pull/51987">https://github.com/rust-lang/rust/pull/51987</a></p>



<a name="128974935"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/128974935" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#128974935">(Jul 02 2018 at 16:52)</a>:</h4>
<p>narrator "lqd was, in fact, curious"</p>



<a name="128986053"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/128986053" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#128986053">(Jul 02 2018 at 20:39)</a>:</h4>
<p><span class="user-mention" data-user-id="116122">@simulacrum</span> <span class="user-mention" data-user-id="116009">@nikomatsakis</span> do we want/need updated benchmark versions for 1) clap-rs ? (cargo check NLL on clap master almost is 3x faster than the perf.rlo version), 2) inflate ? (cargo check NLL on inflate master is almost 25x faster than the perf.rlo version) — and if so, what to call them since perf.rlo has switched from having the crate's version in the benchmark name ?</p>



<a name="128986142"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/128986142" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#128986142">(Jul 02 2018 at 20:41)</a>:</h4>
<p>Generally this is a unanswered question -- we might want to add them, but our capacity for adding new benchmarks to perf.rlo is somewhat limited</p>



<a name="128986150"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/128986150" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#128986150">(Jul 02 2018 at 20:41)</a>:</h4>
<p>We're already regularly behind 3-5 commits and probably have many holes in history because of how slow the server is</p>



<a name="128986214"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/128986214" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#128986214">(Jul 02 2018 at 20:42)</a>:</h4>
<p>unfortunate</p>



<a name="128986280"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/128986280" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#128986280">(Jul 02 2018 at 20:44)</a>:</h4>
<p>I think the long-term future here is shifting to some sort of architecture were we push this work off to multiple machines (but keep a single benchmark on a single machine)</p>



<a name="128986322"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/128986322" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#128986322">(Jul 02 2018 at 20:44)</a>:</h4>
<p>in any case, if/when we decide we need and can afford them, I can take care of it so you don't have to do it all ;)</p>



<a name="128986331"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/128986331" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#128986331">(Jul 02 2018 at 20:44)</a>:</h4>
<p>Sure, yeah -- clap and inflate should go fairly quickly if we want to add them I imagine</p>



<a name="128986343"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/128986343" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#128986343">(Jul 02 2018 at 20:44)</a>:</h4>
<p>yeah IIRC adam (anp) wanted/needed a similar setup for lolbench</p>



<a name="128986344"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/128986344" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#128986344">(Jul 02 2018 at 20:44)</a>:</h4>
<p>I'm not sure if it's worth the benefits, though, nor am I sure what the benefits <em>are</em></p>



<a name="128986550"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/128986550" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#128986550">(Jul 02 2018 at 20:48)</a>:</h4>
<p>I assume it was to track a more modern version so that it would be more up-to-date with what people would experience compiling them, rather than versions exercising particular slow paths in the compiler at the time we added the benchmarks</p>



<a name="128986558"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/128986558" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#128986558">(Jul 02 2018 at 20:48)</a>:</h4>
<p>but yeah indeed, the cost / reward seems high for these cases and maybe in general — in any case, I have PRs ready if/when we want those 2, just let me know</p>



<a name="128986561"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/128986561" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#128986561">(Jul 02 2018 at 20:49)</a>:</h4>
<p>sure, yeah -- it's a question though of how often we should then "update", sort of, I think</p>



<a name="128986588"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/128986588" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#128986588">(Jul 02 2018 at 20:49)</a>:</h4>
<p>I wonder if "transient" benchmarks would do the job</p>



<a name="128986596"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/128986596" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#128986596">(Jul 02 2018 at 20:49)</a>:</h4>
<p>not as data points to track how we improve on a specific rev</p>



<a name="128986650"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/128986650" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#128986650">(Jul 02 2018 at 20:50)</a>:</h4>
<p>but just to say "the current version of clap, which changes all the time, how often TBD, now compiles this fast"</p>



<a name="128986694"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/128986694" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#128986694">(Jul 02 2018 at 20:51)</a>:</h4>
<p>I guess it's a bit more telemetry-like than perf.rlo like</p>



<a name="128986776"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/128986776" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#128986776">(Jul 02 2018 at 20:53)</a>:</h4>
<p>(also I forgot mw's specific needs/issues so this might be stupid :)</p>



<a name="128987256"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/128987256" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#128987256">(Jul 02 2018 at 21:02)</a>:</h4>
<p>Hm, that might be an idea -- instead of benchmarking everything every commit have a "core set" and then do the others for every, say, 20th commit or something</p>



<a name="128987361"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/128987361" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#128987361">(Jul 02 2018 at 21:04)</a>:</h4>
<p>and for "tracking" how these crate users experience compiling, we could just remember some points of interest, eg the data at Rust releases: rust version + benchmark crate version</p>



<a name="128987447"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/128987447" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#128987447">(Jul 02 2018 at 21:06)</a>:</h4>
<p>I think that for the purpose of judging whether NLL is "fast enough to ship", it would be very useful to have numbers for modern crates</p>



<a name="128987464"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/128987464" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#128987464">(Jul 02 2018 at 21:06)</a>:</h4>
<p>i.e, things representative of user's "soon to be" lived experiences</p>



<a name="128987466"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/128987466" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#128987466">(Jul 02 2018 at 21:06)</a>:</h4>
<p>sure -- we already have <a href="https://perf.rust-lang.org/dashboard.html" target="_blank" title="https://perf.rust-lang.org/dashboard.html">https://perf.rust-lang.org/dashboard.html</a> which is sort of like that</p>



<a name="128987484"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/128987484" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#128987484">(Jul 02 2018 at 21:06)</a>:</h4>
<p>Anyway, @lqd -- I'd feel okay updating clap/inflate either in-place (with a rename) or by adding a new clap-sdfsdf where that would be the commit sha prefix</p>



<a name="128987496"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/128987496" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#128987496">(Jul 02 2018 at 21:07)</a>:</h4>
<p>(yeah, I'm guessing the dashboard was an answer to me ;)</p>



<a name="128987515"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/128987515" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#128987515">(Jul 02 2018 at 21:07)</a>:</h4>
<p>yes</p>



<a name="128987615"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/128987615" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#128987615">(Jul 02 2018 at 21:09)</a>:</h4>
<p>I'll let you and niko decide whichever way you feel is best, for whichever of the crates we track, and I will do it (as you both know what we need and the tradeoffs involved)</p>



<a name="128988145"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/128988145" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#128988145">(Jul 02 2018 at 21:21)</a>:</h4>
<p>(btw I think I showed this mostly to mw and haven't had the chance to continue since: an old-ish slow bad mockup I was working on to try and make the perf result "summarized" <a href="https://lqd.github.io/perf/report.html" target="_blank" title="https://lqd.github.io/perf/report.html">https://lqd.github.io/perf/report.html</a> — it doesn't yet achieve this goal as I'd need to generate more of a useful summary so that you wouldn't need to glance at the results, but it's a starting point at least)</p>



<a name="128988418"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/128988418" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#128988418">(Jul 02 2018 at 21:26)</a>:</h4>
<p>Looks quite interesting!</p>



<a name="129006174"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129006174" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129006174">(Jul 03 2018 at 06:33)</a>:</h4>
<p>oh the SCC PR results are not available yet (<a href="https://github.com/rust-lang/rust/pull/51987#issuecomment-401876530" target="_blank" title="https://github.com/rust-lang/rust/pull/51987#issuecomment-401876530">https://github.com/rust-lang/rust/pull/51987#issuecomment-401876530</a>) dit it fail maybe ? or just taking more time than expected probably</p>



<a name="129012142"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129012142" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129012142">(Jul 03 2018 at 09:19)</a>:</h4>
<p>I think something's messed up, yeah.</p>



<a name="129013681"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129013681" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129013681">(Jul 03 2018 at 10:04)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> would you rather we stop tracking the old versions of clap/inflate by updating the benchmark crates to a new version, or have the modern versions as additional benchmarks ? (clap is not _that old_ so the added cost of tracking each commit might be prohibitive vs us regularly checking a set of crates ? that is, until we have lighterweight tracking like we talked about yesterday)</p>



<a name="129029755"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129029755" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129029755">(Jul 03 2018 at 15:30)</a>:</h4>
<p>hmm <span class="user-mention" data-user-id="116113">@lqd</span> I <em>think</em> that on perf I would ideally want to track both</p>



<a name="129029766"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129029766" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129029766">(Jul 03 2018 at 15:30)</a>:</h4>
<p>it seems good to have stress tests</p>



<a name="129030066"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129030066" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129030066">(Jul 03 2018 at 15:35)</a>:</h4>
<p>ok then I'll prepare a PR adding those 2 -- but just out of curiosity, does having a set of benchmarks we track "casually" (and not commit by commit) be interesting to you ? (to have both precise tracking on a _bespoke set_ <span class="emoji emoji-1f642" title="simple smile">:simple_smile:</span> of benchmarks for every commit + try builds, and a lighter weight different set, which could be to have an idea of users' "soon to be lived" experience)</p>



<a name="129035022"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129035022" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129035022">(Jul 03 2018 at 16:56)</a>:</h4>
<p><span class="user-mention" data-user-id="116113">@lqd</span> ok looking at tuple-stress it seems like ~50% of the time is spent looking at the types of <strong>live</strong> variables; an additional 20% is spent iterating and doing other stuff around liveness.</p>



<a name="129035026"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129035026" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129035026">(Jul 03 2018 at 16:56)</a>:</h4>
<p>so it may be that there are a few related sources to improve</p>



<a name="129035031"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129035031" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129035031">(Jul 03 2018 at 16:56)</a>:</h4>
<p>(the silver lining is I think polonius handles itself shakespearly with <code>tuple-stress</code>)</p>



<a name="129035039"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129035039" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129035039">(Jul 03 2018 at 16:57)</a>:</h4>
<p>well, all of this liveness code still executes even with polonius</p>



<a name="129035042"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129035042" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129035042">(Jul 03 2018 at 16:57)</a>:</h4>
<p>lol</p>



<a name="129035043"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129035043" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129035043">(Jul 03 2018 at 16:57)</a>:</h4>
<p>though maybe someday we'll rewrite it all to be datafrog based</p>



<a name="129035049"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129035049" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129035049">(Jul 03 2018 at 16:57)</a>:</h4>
<p>I retract my previous statement!</p>



<a name="129035106"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129035106" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129035106">(Jul 03 2018 at 16:58)</a>:</h4>
<p>then let's improve it until/if we do  switch to <span class="emoji emoji-1f438" title="frog">:frog:</span> :)</p>



<a name="129035215"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129035215" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129035215">(Jul 03 2018 at 17:00)</a>:</h4>
<p>actually almost all of the optimization we've been doing would still benefit <code>-Zpolonius</code></p>



<a name="129035221"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129035221" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129035221">(Jul 03 2018 at 17:00)</a>:</h4>
<p>the SCC stuff is the one exception I think</p>



<a name="129035228"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129035228" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129035228">(Jul 03 2018 at 17:00)</a>:</h4>
<p>at least as currently architected</p>



<a name="129035243"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129035243" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129035243">(Jul 03 2018 at 17:01)</a>:</h4>
<p>since we're in a constant array, do those live variables have mostly the same type ?</p>



<a name="129035542"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129035542" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129035542">(Jul 03 2018 at 17:06)</a>:</h4>
<p>the visit_ty should be mostly the same from point to point (but can't tell if caching here would be interesting)</p>



<a name="129035738"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129035738" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129035738">(Jul 03 2018 at 17:10)</a>:</h4>
<p>I suspect that none of the types involved even have regions</p>



<a name="129035794"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129035794" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129035794">(Jul 03 2018 at 17:10)</a>:</h4>
<p>I was going to open an issue to experiment with a small tweak that checks the type flags and skips the <code>for_each_free_region</code> call entirely in that case</p>



<a name="129035835"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129035835" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129035835">(Jul 03 2018 at 17:11)</a>:</h4>
<p>is there an easy way to check if the types have regions in the mir output ? I do have part of it handy</p>



<a name="129035899"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129035899" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129035899">(Jul 03 2018 at 17:13)</a>:</h4>
<p>not sure but I am doing a run now that should dump it w/ a <code>debug!</code></p>



<a name="129035903"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129035903" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129035903">(Jul 03 2018 at 17:13)</a>:</h4>
<p>(maybe the regions are dumped in the comments I mean ;)</p>



<a name="129035909"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129035909" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129035909">(Jul 03 2018 at 17:13)</a>:</h4>
<p>oh good</p>



<a name="129040195"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129040195" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129040195">(Jul 03 2018 at 18:30)</a>:</h4>
<p>filed <a href="https://github.com/rust-lang/rust/issues/52027" target="_blank" title="https://github.com/rust-lang/rust/issues/52027">https://github.com/rust-lang/rust/issues/52027</a></p>



<a name="129040363"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129040363" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129040363">(Jul 03 2018 at 18:32)</a>:</h4>
<p>yay :) we can talk about it a today's meeting but I'll glady do it</p>



<a name="129040458"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129040458" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129040458">(Jul 03 2018 at 18:34)</a>:</h4>
<p>probably a good idea to get it done. It's a simple change. I suspect we'll want to do more afterwards, though.</p>



<a name="129040464"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129040464" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129040464">(Jul 03 2018 at 18:34)</a>:</h4>
<p>this is about 50% but we need something like 90% :)</p>



<a name="129040939"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129040939" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129040939">(Jul 03 2018 at 18:42)</a>:</h4>
<p>sure :)</p>



<a name="129050250"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129050250" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129050250">(Jul 03 2018 at 22:05)</a>:</h4>
<p><span class="user-mention" data-user-id="116113">@lqd</span> this is a good follow-up re: tuple-stress =) <a href="https://github.com/rust-lang/rust/issues/52034" target="_blank" title="https://github.com/rust-lang/rust/issues/52034">https://github.com/rust-lang/rust/issues/52034</a></p>



<a name="129050825"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129050825" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129050825">(Jul 03 2018 at 22:19)</a>:</h4>
<p>nice :D</p>



<a name="129051406"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129051406" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129051406">(Jul 03 2018 at 22:33)</a>:</h4>
<p>I opened the PR for the previous tuple-stress issue, will r? ping when it passes travis if I'm still awake</p>



<a name="129054822"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129054822" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129054822">(Jul 04 2018 at 00:04)</a>:</h4>
<p>that is, <a href="https://github.com/rust-lang/rust/pull/52037" target="_blank" title="https://github.com/rust-lang/rust/pull/52037">https://github.com/rust-lang/rust/pull/52037</a></p>



<a name="129055442"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129055442" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129055442">(Jul 04 2018 at 00:21)</a>:</h4>
<p>and matthew has found why webrender and piston-image didn't compile <a href="https://github.com/rust-lang/rust/issues/51372#issuecomment-402306996" target="_blank" title="https://github.com/rust-lang/rust/issues/51372#issuecomment-402306996">https://github.com/rust-lang/rust/issues/51372#issuecomment-402306996</a></p>



<a name="129055708"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129055708" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129055708">(Jul 04 2018 at 00:28)</a>:</h4>
<p>hmm, didn't futures have issues as well ? answer: doesn't seem like it no — so, good news again :)</p>



<a name="129055856"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129055856" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129055856">(Jul 04 2018 at 00:33)</a>:</h4>
<p>(apart from the CPU cost of <code>tuple-stress</code>and the memory cost of <code>html5ever</code>)</p>



<a name="129056881"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129056881" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129056881">(Jul 04 2018 at 01:06)</a>:</h4>
<p>nll benchmarks for servo crates are in: 130/120% worse</p>



<a name="129068423"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129068423" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129068423">(Jul 04 2018 at 06:52)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> I updated 52037 to remove <code>super_ty</code></p>



<a name="129074043"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129074043" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129074043">(Jul 04 2018 at 09:10)</a>:</h4>
<p>great! r+</p>



<a name="129077920"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129077920" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129077920">(Jul 04 2018 at 10:54)</a>:</h4>
<p>oh but this new #52034 issue has already been requested by another contributor, too bad but I guess I'll focus on triaging the crater results when they are available</p>



<a name="129083778"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129083778" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129083778">(Jul 04 2018 at 13:01)</a>:</h4>
<p><span class="user-mention" data-user-id="116122">@simulacrum</span> btw I'm going to want a perf run for <a href="https://github.com/rust-lang/rust/pull/51987" target="_blank" title="https://github.com/rust-lang/rust/pull/51987">https://github.com/rust-lang/rust/pull/51987</a> — I just started the bors try though</p>



<a name="129084568"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129084568" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129084568">(Jul 04 2018 at 13:16)</a>:</h4>
<p>ok I got a new profile of clap-rs with the SCC stuff in place</p>



<a name="129084610"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129084610" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129084610">(Jul 04 2018 at 13:17)</a>:</h4>
<p>solving regions is now 3% of MIR borrowck (and hence a <em>very</em> small percentage of total time)</p>



<a name="129084993"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129084993" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129084993">(Jul 04 2018 at 13:26)</a>:</h4>
<p>type-checking remains 25% of MIR borrowck, split amongst:</p>
<ul>
<li>liveness (7%), which I suspect <span class="user-mention" data-user-id="120823">@DPC</span>'s work on <a href="https://github.com/rust-lang/rust/issues/52034" target="_blank" title="https://github.com/rust-lang/rust/issues/52034">https://github.com/rust-lang/rust/issues/52034</a> will help</li>
<li>typeck-mir is 12%, of which canonicalizing is 7%</li>
<li>constraint generation is 5%, mostly adding elements; could maybe be sped up a <em>bit</em> more (I'm currently maintaining two copies of the information, for more precision with error reporting)</li>
<li>do-dataflow is now 41%, which is kind of astounding<ul>
<li>this seems like an area where I suspect we can do better, though I'm not sure how yet :)</li>
<li>maybe sparse bit sets</li>
</ul>
</li>
</ul>



<a name="129086359"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129086359" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129086359">(Jul 04 2018 at 13:54)</a>:</h4>
<p>(regarding dataflow, this <em>does</em> include <span class="user-mention" data-user-id="116191">@Pramod Bisht</span>'s improvements, though iirc they were not especially beneficial to clap-rs)</p>



<a name="129086362"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129086362" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129086362">(Jul 04 2018 at 13:54)</a>:</h4>
<p>I should profile another case or two</p>



<a name="129086481"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129086481" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jake Goulding <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129086481">(Jul 04 2018 at 13:57)</a>:</h4>
<p>I need a "go faster" emoji response</p>



<a name="129086572"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129086572" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129086572">(Jul 04 2018 at 13:59)</a>:</h4>
<p>interesting; cargo looks similiar-<em>ish</em> but more time in liveness</p>



<a name="129086576"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129086576" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129086576">(Jul 04 2018 at 13:59)</a>:</h4>
<p>#52034 seems more imp't than ever</p>



<a name="129086664"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129086664" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129086664">(Jul 04 2018 at 14:00)</a>:</h4>
<p>oh, hmm, interesting</p>



<a name="129086677"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129086677" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129086677">(Jul 04 2018 at 14:01)</a>:</h4>
<p>looking more closely at <code>Liveness::defs_uses</code>, I see more room for improvement</p>



<a name="129086685"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129086685" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129086685">(Jul 04 2018 at 14:01)</a>:</h4>
<p>although... huh. I thought that njn optimized this</p>



<a name="129086693"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129086693" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129086693">(Jul 04 2018 at 14:01)</a>:</h4>
<p>ah, <a href="https://github.com/rust-lang/rust/pull/51870" target="_blank" title="https://github.com/rust-lang/rust/pull/51870">https://github.com/rust-lang/rust/pull/51870</a> didn't land yet</p>



<a name="129087024"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129087024" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129087024">(Jul 04 2018 at 14:09)</a>:</h4>
<p><span class="user-mention" data-user-id="116155">@Jake Goulding</span> Gankro's version of Ferris, Sonic-like "gotta go fast" comes to mind :)</p>



<a name="129087872"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129087872" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129087872">(Jul 04 2018 at 14:26)</a>:</h4>
<p>\+ it looks like liveness is also linked to the html5ever OOM, from njn's comments on the issue</p>



<a name="129094721"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129094721" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129094721">(Jul 04 2018 at 16:47)</a>:</h4>
<p>njn's 51870 has now landed <span class="emoji emoji-1f389" title="tada">:tada:</span></p>



<a name="129095314"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129095314" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129095314">(Jul 04 2018 at 17:03)</a>:</h4>
<p>woot. Now if only the perf server would finish <a href="https://github.com/rust-lang/rust/pull/51987" target="_blank" title="https://github.com/rust-lang/rust/pull/51987">https://github.com/rust-lang/rust/pull/51987</a> :)</p>



<a name="129095316"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129095316" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129095316">(Jul 04 2018 at 17:03)</a>:</h4>
<p>I doubt it will happen today though</p>



<a name="129095581"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129095581" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129095581">(Jul 04 2018 at 17:09)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> Working on a queue now :)</p>



<a name="129095666"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129095666" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129095666">(Jul 04 2018 at 17:11)</a>:</h4>
<p>what do you mean by a queue?</p>



<a name="129095709"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129095709" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129095709">(Jul 04 2018 at 17:12)</a>:</h4>
<p>i.e. you can see what order, and probably estimate when, things will be benchmarked</p>



<a name="129095715"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129095715" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129095715">(Jul 04 2018 at 17:12)</a>:</h4>
<p>nice :)</p>



<a name="129095720"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129095720" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129095720">(Jul 04 2018 at 17:12)</a>:</h4>
<p>it will also mean soon-ish that people can request try builds for benchmarking, possibly with a priority</p>



<a name="129095816"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129095816" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129095816">(Jul 04 2018 at 17:15)</a>:</h4>
<p>will these perf build requests possibly be using "craterbot" ?</p>



<a name="129095890"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129095890" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129095890">(Jul 04 2018 at 17:17)</a>:</h4>
<p>could, but maybe just the same account -- it'll for now be a different service for sure</p>



<a name="129098942"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129098942" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129098942">(Jul 04 2018 at 18:42)</a>:</h4>
<p>was it recently enabling some NLL benchmarks which caused problems for perf.rlo ?</p>



<a name="129099115"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129099115" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129099115">(Jul 04 2018 at 18:47)</a>:</h4>
<p>it doesn't help, but perf's turnaround times have always been long-ish</p>



<a name="129099118"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129099118" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129099118">(Jul 04 2018 at 18:47)</a>:</h4>
<p>I wonder if we could commission a second machine</p>



<a name="129099121"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129099121" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129099121">(Jul 04 2018 at 18:47)</a>:</h4>
<p>(to be used for new benchmarks)</p>



<a name="129099165"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129099165" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129099165">(Jul 04 2018 at 18:48)</a>:</h4>
<p>obviously for any one benchmark we probably prefer to keep a consistent piece of hardware</p>



<a name="129099826"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129099826" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129099826">(Jul 04 2018 at 19:05)</a>:</h4>
<p>We can -- however, that's rather expensive on most cloud platforms because we need dedicated hardware</p>



<a name="129099839"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129099839" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129099839">(Jul 04 2018 at 19:05)</a>:</h4>
<p>We're moving in the direction where that's easier on the code part, too</p>



<a name="129099976"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129099976" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129099976">(Jul 04 2018 at 19:09)</a>:</h4>
<p>I thought perf stuff was running on an actual computer under somebody-or-other's desk?</p>



<a name="129100276"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129100276" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129100276">(Jul 04 2018 at 19:16)</a>:</h4>
<p>It is</p>



<a name="129100298"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129100298" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129100298">(Jul 04 2018 at 19:17)</a>:</h4>
<p>so presumably we could buy a second one</p>



<a name="129100299"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129100299" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129100299">(Jul 04 2018 at 19:17)</a>:</h4>
<p>but anyway</p>



<a name="129100318"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129100318" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129100318">(Jul 04 2018 at 19:18)</a>:</h4>
<p>or we can get NLL up to snuff so we don't have to run 2 rounds of profiles :)</p>



<a name="129100406"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129100406" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129100406">(Jul 04 2018 at 19:20)</a>:</h4>
<p>Sure, though I don't know that NLL costs us all that much today. Now, eliminating Servo... that's an hour of savings.</p>



<a name="129100411"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129100411" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129100411">(Jul 04 2018 at 19:20)</a>:</h4>
<p>(IIRC)</p>



<a name="129100462"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129100462" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129100462">(Jul 04 2018 at 19:21)</a>:</h4>
<p>:)</p>



<a name="129102783"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129102783" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129102783">(Jul 04 2018 at 20:16)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> Queue is live, <a href="https://perf.rust-lang.org/status.html" target="_blank" title="https://perf.rust-lang.org/status.html">https://perf.rust-lang.org/status.html</a> (bottom of page)</p>



<a name="129102797"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129102797" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129102797">(Jul 04 2018 at 20:17)</a>:</h4>
<p>Haven't worked on the on-demand adding of try commits but it's coming</p>



<a name="129103395"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129103395" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129103395">(Jul 04 2018 at 20:30)</a>:</h4>
<p>nice :) (perf seems offline now but I'm sure it <em>is</em> nice)</p>



<a name="129103408"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129103408" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129103408">(Jul 04 2018 at 20:31)</a>:</h4>
<p><span class="user-mention" data-user-id="116113">@lqd</span>  DNS is changing over -- if you flush local cache that might be enough</p>



<a name="129103427"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129103427" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129103427">(Jul 04 2018 at 20:32)</a>:</h4>
<p><span class="user-mention" data-user-id="116122">@simulacrum</span> that is very exciting!</p>



<a name="129103467"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129103467" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129103467">(Jul 04 2018 at 20:32)</a>:</h4>
<p>I guess I have to figure out how to flush my DNS :)</p>



<a name="129103470"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129103470" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129103470">(Jul 04 2018 at 20:32)</a>:</h4>
<p><code>sudo dscacheutil -flushcache;sudo killall -HUP mDNSResponder</code> on macOS apparently</p>



<a name="129103488"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129103488" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129103488">(Jul 04 2018 at 20:33)</a>:</h4>
<p>ok, that worked</p>



<a name="129103492"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129103492" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129103492">(Jul 04 2018 at 20:33)</a>:</h4>
<p>I see something very ... text-y</p>



<a name="129103494"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129103494" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129103494">(Jul 04 2018 at 20:33)</a>:</h4>
<p>but it does include a queue</p>



<a name="129103495"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129103495" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129103495">(Jul 04 2018 at 20:33)</a>:</h4>
<p>ah, this is the "status" page, ok</p>



<a name="129103546"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129103546" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129103546">(Jul 04 2018 at 20:34)</a>:</h4>
<p>what could be nice if it also showed the future "perf results URL"</p>



<a name="129103553"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129103553" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129103553">(Jul 04 2018 at 20:34)</a>:</h4>
<p>oh dear god yes please :)</p>



<a name="129103566"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129103566" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129103566">(Jul 04 2018 at 20:35)</a>:</h4>
<p>I take it from this that try commit 8e6d8db2bf93a  is next?</p>



<a name="129103575"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129103575" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129103575">(Jul 04 2018 at 20:35)</a>:</h4>
<p>if so, I think that's my SCC PR</p>



<a name="129103588"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129103588" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129103588">(Jul 04 2018 at 20:35)</a>:</h4>
<p>which is excited to me :P</p>



<a name="129103591"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129103591" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129103591">(Jul 04 2018 at 20:35)</a>:</h4>
<p>how timely</p>



<a name="129103653"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129103653" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129103653">(Jul 04 2018 at 20:36)</a>:</h4>
<p>runs do take a couple hours right ?</p>



<a name="129103655"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129103655" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129103655">(Jul 04 2018 at 20:36)</a>:</h4>
<p>Well, you're going to have to adjust your master URL or wait for like 12 more hours but yes</p>



<a name="129103658"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129103658" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129103658">(Jul 04 2018 at 20:36)</a>:</h4>
<p>2.5 hours on average per commit, yes</p>



<a name="129103663"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129103663" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129103663">(Jul 04 2018 at 20:36)</a>:</h4>
<blockquote>
<p>Well, you're going to have to adjust your master URL or wait for like 12 more hours but yes</p>
</blockquote>
<p>yeah, I know</p>



<a name="129103680"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129103680" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129103680">(Jul 04 2018 at 20:37)</a>:</h4>
<p>but I think I can compare against more-or-less any recent commit and get useful-ish info</p>



<a name="129103685"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129103685" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129103685">(Jul 04 2018 at 20:37)</a>:</h4>
<p>probably should not include njn's latest PR</p>



<a name="129109083"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129109083" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129109083">(Jul 04 2018 at 23:17)</a>:</h4>
<p>ok, <a href="https://perf.rust-lang.org/compare.html?start=a739c51d108b1958a1c3e145588035c580e7973a&amp;end=8e6d8db2bf93a7c311c0a7a4cc7e1b4b7a5a5c04&amp;stat=instructions%3Au" target="_blank" title="https://perf.rust-lang.org/compare.html?start=a739c51d108b1958a1c3e145588035c580e7973a&amp;end=8e6d8db2bf93a7c311c0a7a4cc7e1b4b7a5a5c04&amp;stat=instructions%3Au">the updated results for the SCC branch are available</a></p>



<a name="129109122"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129109122" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129109122">(Jul 04 2018 at 23:18)</a>:</h4>
<p>43% win for inflate :)</p>



<a name="129109126"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129109126" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129109126">(Jul 04 2018 at 23:18)</a>:</h4>
<p>the rest kind of looks like noise to me</p>



<a name="129109134"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129109134" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129109134">(Jul 04 2018 at 23:19)</a>:</h4>
<p>though I do see a fair amount of red</p>



<a name="129109137"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129109137" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129109137">(Jul 04 2018 at 23:19)</a>:</h4>
<p>still seems probably worth it</p>



<a name="129109140"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129109140" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129109140">(Jul 04 2018 at 23:19)</a>:</h4>
<p>(there are e.g. comparable swings in the NON-nll build times, which I cannot imagine being affected)</p>



<a name="129109195"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129109195" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129109195">(Jul 04 2018 at 23:21)</a>:</h4>
<p>noise is small time-wise anyway</p>



<a name="129109197"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129109197" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129109197">(Jul 04 2018 at 23:21)</a>:</h4>
<p>might be side-effects of me checking on it every couple minutes, honestly</p>



<a name="129109237"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129109237" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129109237">(Jul 04 2018 at 23:22)</a>:</h4>
<p>heh :)</p>



<a name="129115882"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129115882" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129115882">(Jul 05 2018 at 03:36)</a>:</h4>
<p>Fancy in-progress commit status display is in (but, who knows, could break): <a href="https://perf.rust-lang.org/status.html" target="_blank" title="https://perf.rust-lang.org/status.html">https://perf.rust-lang.org/status.html</a></p>



<a name="129115921"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129115921" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129115921">(Jul 05 2018 at 03:36)</a>:</h4>
<p>I also need to test out the try commit on demand code -- so, basically, go run a try commit :)</p>



<a name="129152762"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129152762" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129152762">(Jul 05 2018 at 17:48)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> Thought: Stop running NLL benchmarks on anything except check</p>



<a name="129152775"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129152775" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129152775">(Jul 05 2018 at 17:48)</a>:</h4>
<p>I don't see how optimizations or debug can make any difference to NLL times/perf so that seems like a cheap win</p>



<a name="129153486"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129153486" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129153486">(Jul 05 2018 at 18:01)</a>:</h4>
<p><span class="user-mention" data-user-id="116122">@simulacrum</span> <span class="emoji emoji-1f44d" title="+1">:+1:</span></p>



<a name="129154542"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129154542" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129154542">(Jul 05 2018 at 18:17)</a>:</h4>
<p>deployed</p>



<a name="129164444"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129164444" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129164444">(Jul 05 2018 at 21:06)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> Try build requests are live: <a href="https://github.com/rust-lang/rust/pull/52083#issuecomment-402838238" target="_blank" title="https://github.com/rust-lang/rust/pull/52083#issuecomment-402838238">https://github.com/rust-lang/rust/pull/52083#issuecomment-402838238</a></p>



<a name="129164452"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129164452" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129164452">(Jul 05 2018 at 21:06)</a>:</h4>
<p>(you should have permissions and I think that wall of comments resolved the quirks, mostly)</p>



<a name="129164525"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129164525" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129164525">(Jul 05 2018 at 21:08)</a>:</h4>
<p>holy macarel</p>



<a name="129164531"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129164531" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129164531">(Jul 05 2018 at 21:08)</a>:</h4>
<p>how do I use it exactly?</p>



<a name="129164541"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129164541" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129164541">(Jul 05 2018 at 21:08)</a>:</h4>
<p>do I still have to schedule a try build?</p>



<a name="129164543"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129164543" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129164543">(Jul 05 2018 at 21:08)</a>:</h4>
<p>or does it handle all of that?</p>



<a name="129165184"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129165184" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129165184">(Jul 05 2018 at 21:21)</a>:</h4>
<p>apparently you schedule a try build, and ask the bot to queue the merge commit that bors answered</p>



<a name="129167096"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129167096" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129167096">(Jul 05 2018 at 21:58)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> <span class="user-mention" data-user-id="116113">@lqd</span> was correct -- you need to wait for the try build to go through in Travis but then you can schedule it with this bot and it'll queue in perf (visible on the status page). Right now it won't let you know when the build is complete, but at least it's a start</p>



<a name="129167110"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129167110" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129167110">(Jul 05 2018 at 21:58)</a>:</h4>
<p><code>@rust-timer build &lt;full commit hash&gt;</code> is the invocation</p>



<a name="129168322"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129168322" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129168322">(Jul 05 2018 at 22:21)</a>:</h4>
<p>very cool</p>



<a name="129168324"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129168324" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129168324">(Jul 05 2018 at 22:21)</a>:</h4>
<p>rustc-guide please :)</p>



<a name="129168365"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129168365" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129168365">(Jul 05 2018 at 22:22)</a>:</h4>
<p>I am hypocritical, I have at least 2 or 3 things I should open PRs for</p>



<a name="129168369"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129168369" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129168369">(Jul 05 2018 at 22:22)</a>:</h4>
<p>/me goes to do that now maybe</p>



<a name="129168395"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129168395" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129168395">(Jul 05 2018 at 22:23)</a>:</h4>
<p>/me mumbles about wanting to add more before doing that</p>



<a name="129168399"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129168399" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129168399">(Jul 05 2018 at 22:23)</a>:</h4>
<p>but yes, I should document it somewhere</p>



<a name="129206386"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129206386" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129206386">(Jul 06 2018 at 14:56)</a>:</h4>
<p><span class="user-mention" data-user-id="116122">@simulacrum</span> can we close <a href="https://github.com/rust-lang/rust/issues/51372" target="_blank" title="https://github.com/rust-lang/rust/issues/51372">#51372</a> ?</p>



<a name="129209767"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129209767" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129209767">(Jul 06 2018 at 16:01)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> Let me enable the relevant benchmarks on perf.r-l.o and then we can make sure they compile, I'll close after that</p>



<a name="129210636"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129210636" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129210636">(Jul 06 2018 at 16:17)</a>:</h4>
<p>Enabled, should appear in the next run I think</p>



<a name="129224942"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129224942" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129224942">(Jul 06 2018 at 21:02)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> Both finished successfully so I closed the issue</p>



<a name="129626372"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129626372" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129626372">(Jul 13 2018 at 20:27)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> FYI, all benchmarks on perf.rlo are now enabled</p>



<a name="129626381"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129626381" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129626381">(Jul 13 2018 at 20:28)</a>:</h4>
<p><a href="https://perf.rust-lang.org/nll-dashboard.html" target="_blank" title="https://perf.rust-lang.org/nll-dashboard.html">https://perf.rust-lang.org/nll-dashboard.html</a></p>



<a name="129626610"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129626610" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Matthew Jasper <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129626610">(Jul 13 2018 at 20:30)</a>:</h4>
<p>5,731.76% <span class="emoji emoji-1f635" title="dizzy face">:dizzy_face:</span></p>



<a name="129647186"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129647186" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129647186">(Jul 14 2018 at 05:04)</a>:</h4>
<p>seems like html5ever-opt got worse due to my PR (<a href="https://github.com/rust-lang/rust/issues/51987" target="_blank" title="https://github.com/rust-lang/rust/issues/51987">#51987</a>) but then worse again due to some other seemingly unrelated change (<a href="https://github.com/rust-lang/rust/issues/52266" target="_blank" title="https://github.com/rust-lang/rust/issues/52266">#52266</a>)</p>



<a name="129766828"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129766828" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129766828">(Jul 16 2018 at 18:16)</a>:</h4>
<p><span class="user-mention" data-user-id="116122">@simulacrum</span> did I do something <a href="https://github.com/rust-lang/rust/pull/52190#issuecomment-405330478" target="_blank" title="https://github.com/rust-lang/rust/pull/52190#issuecomment-405330478">wrong here</a>? I'm trying to enqueue that build</p>



<a name="129766870"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129766870" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129766870">(Jul 16 2018 at 18:16)</a>:</h4>
<p>I don't see it in <a href="https://perf.rust-lang.org/status.html" target="_blank" title="https://perf.rust-lang.org/status.html">the status page</a> though</p>



<a name="129766887"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129766887" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129766887">(Jul 16 2018 at 18:16)</a>:</h4>
<p>hm, it doesn't look like it, let me look at logs</p>



<a name="129767130"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129767130" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129767130">(Jul 16 2018 at 18:21)</a>:</h4>
<p>I'll take care of it once I figure out what the bug is</p>



<a name="129767134"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129767134" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129767134">(Jul 16 2018 at 18:21)</a>:</h4>
<p>Seems like it's probably not you</p>



<a name="129767344"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129767344" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129767344">(Jul 16 2018 at 18:25)</a>:</h4>
<p>hm, okay, no idea what was wrong</p>



<a name="129767387"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129767387" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129767387">(Jul 16 2018 at 18:26)</a>:</h4>
<p>Seems to have resolved itself though so "great"</p>



<a name="129767455"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129767455" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129767455">(Jul 16 2018 at 18:27)</a>:</h4>
<p>oh, might be a GH problem <a href="https://status.github.com/messages" target="_blank" title="https://status.github.com/messages">https://status.github.com/messages</a></p>



<a name="129767514"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129767514" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129767514">(Jul 16 2018 at 18:28)</a>:</h4>
<p>while using the playground earlier, the github gists API was very slow as well</p>



<a name="129767651"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129767651" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129767651">(Jul 16 2018 at 18:30)</a>:</h4>
<p>that's going to be not so great for our bot heavy infra :)</p>



<a name="129767680"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129767680" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129767680">(Jul 16 2018 at 18:31)</a>:</h4>
<p>Most bots are resilient internally, just not when interacting with humans :/</p>



<a name="129767701"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129767701" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129767701">(Jul 16 2018 at 18:31)</a>:</h4>
<p>i.e perf will mostly work fine without GH I think, it'll go through the existing queue just fine</p>



<a name="129880501"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129880501" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Eh2406 <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129880501">(Jul 18 2018 at 16:06)</a>:</h4>
<p>Are there issues that I could jump in on to help get the <a href="https://perf.rust-lang.org/nll-dashboard.html" target="_blank" title="https://perf.rust-lang.org/nll-dashboard.html">https://perf.rust-lang.org/nll-dashboard.html</a> to look happier?</p>



<a name="129880756"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129880756" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129880756">(Jul 18 2018 at 16:12)</a>:</h4>
<p>we have one bigger idea for exploring, but I had another thought recently I've been meaning to write-up that might be a bit more targeted...</p>



<a name="129886025"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129886025" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Eh2406 <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129886025">(Jul 18 2018 at 17:47)</a>:</h4>
<p>Well <a href="https://github.com/rust-lang/rust/pull/52250#issuecomment-406015802" target="_blank" title="https://github.com/rust-lang/rust/pull/52250#issuecomment-406015802">https://github.com/rust-lang/rust/pull/52250#issuecomment-406015802</a> looks promising!</p>



<a name="129886235"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129886235" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129886235">(Jul 18 2018 at 17:51)</a>:</h4>
<p>Certainly...</p>



<a name="129886239"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129886239" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129886239">(Jul 18 2018 at 17:51)</a>:</h4>
<p>I'm not clear on how fully rebased that is though</p>



<a name="129886660"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129886660" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Eh2406 <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129886660">(Jul 18 2018 at 17:58)</a>:</h4>
<p>The try builds parent is <a href="https://github.com/rust-lang/rust/commit/cd5f5a129fab998a1ee7c72204d093dc475981d1" target="_blank" title="https://github.com/rust-lang/rust/commit/cd5f5a129fab998a1ee7c72204d093dc475981d1">https://github.com/rust-lang/rust/commit/cd5f5a129fab998a1ee7c72204d093dc475981d1</a><br>
and looking at the changes <a href="https://github.com/rust-lang/rust/pull/52364" target="_blank" title="https://github.com/rust-lang/rust/pull/52364">https://github.com/rust-lang/rust/pull/52364</a><br>
might be a problem?</p>



<a name="129887029"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/129887029" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#129887029">(Jul 18 2018 at 18:04)</a>:</h4>
<p>hmm, that might PR might screw up my in-progress PR...</p>



<a name="130214336"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130214336" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130214336">(Jul 24 2018 at 14:25)</a>:</h4>
<p>95% of the time in <code>html5ever</code>is because of <a href="https://play.rust-lang.org/?gist=4de78cad514bf7c40445e949e0501b88&amp;version=nightly&amp;mode=debug&amp;edition=2015" target="_blank" title="https://play.rust-lang.org/?gist=4de78cad514bf7c40445e949e0501b88&amp;version=nightly&amp;mode=debug&amp;edition=2015">this huge static</a></p>



<a name="130214399"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130214399" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> davidtwco <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130214399">(Jul 24 2018 at 14:26)</a>:</h4>
<p>That's quite the static.</p>



<a name="130214420"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130214420" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130214420">(Jul 24 2018 at 14:27)</a>:</h4>
<p>AFAICT it's a phf map of the tokenizer's named entities</p>



<a name="130214442"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130214442" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130214442">(Jul 24 2018 at 14:27)</a>:</h4>
<p>that was similar to tuple-stress</p>



<a name="130214446"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130214446" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130214446">(Jul 24 2018 at 14:27)</a>:</h4>
<p>very</p>



<a name="130214449"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130214449" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130214449">(Jul 24 2018 at 14:27)</a>:</h4>
<p>except that there are lifetimes -- just <code>'static</code></p>



<a name="130214450"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130214450" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130214450">(Jul 24 2018 at 14:27)</a>:</h4>
<p>we could plausibly special case it...</p>



<a name="130214459"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130214459" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130214459">(Jul 24 2018 at 14:27)</a>:</h4>
<p>as we were thinking for tuple stress :)</p>



<a name="130214470"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130214470" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130214470">(Jul 24 2018 at 14:27)</a>:</h4>
<p>this is the thing which was taking 11GB to compile as well, before David's PR</p>



<a name="130214595"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130214595" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> davidtwco <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130214595">(Jul 24 2018 at 14:29)</a>:</h4>
<p>There's still too much memory being used even post that-PR though, right?</p>



<a name="130214607"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130214607" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130214607">(Jul 24 2018 at 14:29)</a>:</h4>
<p>2GB IIRC</p>



<a name="130214616"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130214616" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130214616">(Jul 24 2018 at 14:29)</a>:</h4>
<p>so the main thing is</p>



<a name="130214619"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130214619" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130214619">(Jul 24 2018 at 14:29)</a>:</h4>
<p>in the case of html5ever</p>



<a name="130214625"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130214625" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130214625">(Jul 24 2018 at 14:29)</a>:</h4>
<p>we.. maybe? don't really need to compute liveness.. all regions are <code>'static</code></p>



<a name="130214630"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130214630" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130214630">(Jul 24 2018 at 14:29)</a>:</h4>
<p>or at least we might be able to readily detect that</p>



<a name="130214695"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130214695" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130214695">(Jul 24 2018 at 14:30)</a>:</h4>
<p>that also explains why the bit sets were so densely occupied</p>



<a name="130215983"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130215983" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130215983">(Jul 24 2018 at 14:49)</a>:</h4>
<p>I was trying to get some logs to see which functions were the most problematic, but probably the ones njn has mentioned before</p>



<a name="130222982"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130222982" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130222982">(Jul 24 2018 at 17:05)</a>:</h4>
<p>said log gathering is still running, 52GB of liveness logs so far :)</p>



<a name="130223332"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130223332" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130223332">(Jul 24 2018 at 17:12)</a>:</h4>
<p>niko and santiago have been working around this area before, like 3 weeks ago</p>



<a name="130231190"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130231190" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130231190">(Jul 24 2018 at 19:21)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> could we / would it help if we only <code>push_type_live_constraint</code>d once per (live_local_ty x location), rather than per (live_local x location) <a href="https://github.com/rust-lang/rust/blob/master/src/librustc_mir/borrow_check/nll/type_check/liveness.rs#L90-L93" target="_blank" title="https://github.com/rust-lang/rust/blob/master/src/librustc_mir/borrow_check/nll/type_check/liveness.rs#L90-L93">here</a></p>



<a name="130231277"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130231277" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130231277">(Jul 24 2018 at 19:23)</a>:</h4>
<p>plausibly, depends how many locals there are w/ duplicate types I suppose :)</p>



<a name="130231283"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130231283" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130231283">(Jul 24 2018 at 19:23)</a>:</h4>
<p>all of them :3</p>



<a name="130231284"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130231284" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130231284">(Jul 24 2018 at 19:23)</a>:</h4>
<p>would probably be a relatively easy change to try</p>



<a name="130231289"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130231289" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130231289">(Jul 24 2018 at 19:23)</a>:</h4>
<p>I see, I see</p>



<a name="130231291"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130231291" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130231291">(Jul 24 2018 at 19:23)</a>:</h4>
<p>in this particular case you mean</p>



<a name="130231340"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130231340" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130231340">(Jul 24 2018 at 19:24)</a>:</h4>
<p>I'm just seeing them through the logs so I might be mistaken</p>



<a name="130231347"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130231347" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130231347">(Jul 24 2018 at 19:24)</a>:</h4>
<p>no I mean seems very plausible actually</p>



<a name="130231351"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130231351" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130231351">(Jul 24 2018 at 19:24)</a>:</h4>
<p>particularly for big constants</p>



<a name="130231353"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130231353" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130231353">(Jul 24 2018 at 19:24)</a>:</h4>
<p>right</p>



<a name="130231355"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130231355" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130231355">(Jul 24 2018 at 19:24)</a>:</h4>
<p>where e.g. you are assembling a <code>[Foo; N]</code></p>



<a name="130231357"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130231357" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130231357">(Jul 24 2018 at 19:24)</a>:</h4>
<p>there are likely to be about <code>N</code> instances of type <code>Foo</code> =)</p>



<a name="130231359"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130231359" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130231359">(Jul 24 2018 at 19:25)</a>:</h4>
<p>well we could just add a little hash set or whatever</p>



<a name="130231373"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130231373" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130231373">(Jul 24 2018 at 19:25)</a>:</h4>
<p>here there's around 90k I think, which are all AFAICT tuples of (&amp;str, (u32, u32))</p>



<a name="130231383"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130231383" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130231383">(Jul 24 2018 at 19:25)</a>:</h4>
<p>and that's per location I think, which might be around 90k as well</p>



<a name="130231562"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130231562" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130231562">(Jul 24 2018 at 19:28)</a>:</h4>
<p>and <a href="https://github.com/rust-lang/rust/blob/master/src/librustc_mir/borrow_check/nll/type_check/liveness.rs#L105" target="_blank" title="https://github.com/rust-lang/rust/blob/master/src/librustc_mir/borrow_check/nll/type_check/liveness.rs#L105">here</a> there doesn't seem to be any live locals in those 92K points</p>



<a name="130231616"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130231616" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130231616">(Jul 24 2018 at 19:29)</a>:</h4>
<p>hmm one problem probably is</p>



<a name="130231620"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130231620" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130231620">(Jul 24 2018 at 19:29)</a>:</h4>
<p>each of those tuples has a distinct lifetime in its type</p>



<a name="130231623"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130231623" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130231623">(Jul 24 2018 at 19:29)</a>:</h4>
<p>I suspect</p>



<a name="130231723"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130231723" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130231723">(Jul 24 2018 at 19:30)</a>:</h4>
<p>do they show up in the logs by any chance (maybe would I need verbose mode) ?</p>



<a name="130231737"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130231737" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130231737">(Jul 24 2018 at 19:30)</a>:</h4>
<p>that would probably help, yes</p>



<a name="130231742"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130231742" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130231742">(Jul 24 2018 at 19:30)</a>:</h4>
<p><code>-Zverbose</code></p>



<a name="130289862"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130289862" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130289862">(Jul 25 2018 at 17:29)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> is there anything I can do to help y'all investigate html5ever ? tracing / debugging / profiling (I have a callgrind profile) etc ?</p>



<a name="130290055"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130290055" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130290055">(Jul 25 2018 at 17:31)</a>:</h4>
<p>hmm so can you summarize for me again — there are basically a ton of local variables, each with a type like <code>&amp;'X T</code>?</p>



<a name="130290118"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130290118" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130290118">(Jul 25 2018 at 17:32)</a>:</h4>
<p>I'm wondering what tricks we can play :)</p>



<a name="130290120"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130290120" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130290120">(Jul 25 2018 at 17:32)</a>:</h4>
<p>there seem to be multiple areas this test shows</p>



<a name="130290127"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130290127" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130290127">(Jul 25 2018 at 17:32)</a>:</h4>
<p>some quadratic behaviour njn reported</p>



<a name="130290132"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130290132" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130290132">(Jul 25 2018 at 17:32)</a>:</h4>
<p>I guess the main trick would be</p>



<a name="130290137"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130290137" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130290137">(Jul 25 2018 at 17:32)</a>:</h4>
<p>or, one trick we might do....</p>



<a name="130290144"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130290144" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130290144">(Jul 25 2018 at 17:33)</a>:</h4>
<p>if we are in a static or constant, maybe we can just skip liveness somehow</p>



<a name="130290151"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130290151" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130290151">(Jul 25 2018 at 17:33)</a>:</h4>
<p>I'm trying to remember though if that is true</p>



<a name="130290174"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130290174" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130290174">(Jul 25 2018 at 17:33)</a>:</h4>
<p>and the thing I was seeing wrt to these locals having effectively &amp;'static str strings, but in the liveness code it was seeing it as separate regions (I'm not sure the logs shoud/would show them as 'static at this point)</p>



<a name="130290175"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130290175" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130290175">(Jul 25 2018 at 17:33)</a>:</h4>
<p>I was imagining essentially adding some kind of <code>'static</code> bound to everything</p>



<a name="130290186"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130290186" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130290186">(Jul 25 2018 at 17:33)</a>:</h4>
<p>the logs wouldn't show them that way</p>



<a name="130290229"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130290229" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130290229">(Jul 25 2018 at 17:34)</a>:</h4>
<p>i.e., the first step in MIR land is that we erase all the regions and make them fresh variables</p>



<a name="130290235"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130290235" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130290235">(Jul 25 2018 at 17:34)</a>:</h4>
<p>then find out the required relationships between them</p>



<a name="130290236"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130290236" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130290236">(Jul 25 2018 at 17:34)</a>:</h4>
<p>at this stage, we won't have computed that they have to live for static lifetime</p>



<a name="130290242"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130290242" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130290242">(Jul 25 2018 at 17:34)</a>:</h4>
<p>the question then is -- in a static -- is there some way to have a shorter-lived region that's important</p>



<a name="130290248"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130290248" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130290248">(Jul 25 2018 at 17:34)</a>:</h4>
<p>(and I'm not even sure this would matter a lot even if this simulate_block was more efficient wrt to these common types)</p>



<a name="130290255"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130290255" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130290255">(Jul 25 2018 at 17:34)</a>:</h4>
<p>but yes the other option is just to increase the efficiency</p>



<a name="130290276"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130290276" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130290276">(Jul 25 2018 at 17:35)</a>:</h4>
<p>in some way</p>



<a name="130290285"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130290285" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130290285">(Jul 25 2018 at 17:35)</a>:</h4>
<p>yeah and njn pointed other areas which looked interesting</p>



<a name="130290304"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130290304" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130290304">(Jul 25 2018 at 17:36)</a>:</h4>
<p>let me get you a link to one of those</p>



<a name="130290374"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130290374" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130290374">(Jul 25 2018 at 17:37)</a>:</h4>
<p>eg <a href="https://github.com/rust-lang/rust/blob/master/src/librustc_mir/borrow_check/places_conflict.rs#L32-L37" target="_blank" title="https://github.com/rust-lang/rust/blob/master/src/librustc_mir/borrow_check/places_conflict.rs#L32-L37">https://github.com/rust-lang/rust/blob/master/src/librustc_mir/borrow_check/places_conflict.rs#L32-L37</a></p>



<a name="130290382"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130290382" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130290382">(Jul 25 2018 at 17:37)</a>:</h4>
<p>so that I have an idea for</p>



<a name="130290387"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130290387" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130290387">(Jul 25 2018 at 17:37)</a>:</h4>
<p>I've been meaning to write it up</p>



<a name="130290389"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130290389" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130290389">(Jul 25 2018 at 17:37)</a>:</h4>
<p>I may have left a cryptic comment somewhere</p>



<a name="130290394"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130290394" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130290394">(Jul 25 2018 at 17:37)</a>:</h4>
<p>what %age of time does that fn account for?</p>



<a name="130290400"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130290400" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130290400">(Jul 25 2018 at 17:37)</a>:</h4>
<p>the good news is that optimizing that fn would help across the board</p>



<a name="130290405"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130290405" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130290405">(Jul 25 2018 at 17:38)</a>:</h4>
<p>right now we do a pretty naive comparison</p>



<a name="130290452"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130290452" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130290452">(Jul 25 2018 at 17:38)</a>:</h4>
<p>my basic idea would be to reorganize how <code>mir::Place</code> is represented, to start</p>



<a name="130290459"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130290459" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130290459">(Jul 25 2018 at 17:38)</a>:</h4>
<p>I think it's the hottest function of them all 28,184,735,859 instr</p>



<a name="130290469"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130290469" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130290469">(Jul 25 2018 at 17:38)</a>:</h4>
<p>I think we would want something like <code>Place { base: PlaceBase, projections: &amp;[PlaceProjections] }</code></p>



<a name="130290483"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130290483" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130290483">(Jul 25 2018 at 17:38)</a>:</h4>
<p>and then we would try to hash the "loans in scope" by the base</p>



<a name="130290493"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130290493" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130290493">(Jul 25 2018 at 17:38)</a>:</h4>
<p>so that e.g. if yo have a borrow of the variable _X and an access to _Y</p>



<a name="130290497"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130290497" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130290497">(Jul 25 2018 at 17:39)</a>:</h4>
<p>we don't ever have to compare them against one another</p>



<a name="130290515"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130290515" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130290515">(Jul 25 2018 at 17:39)</a>:</h4>
<p>in particular when the number of loans is growing linearly as we traverse the code...</p>



<a name="130290586"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130290586" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130290586">(Jul 25 2018 at 17:40)</a>:</h4>
<p>I've been wanting to write it up but also wanting to dig in and figure out in a bit more detail how that would work</p>



<a name="130290592"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130290592" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130290592">(Jul 25 2018 at 17:40)</a>:</h4>
<p>actually just changing the structure of places</p>



<a name="130290598"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130290598" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130290598">(Jul 25 2018 at 17:40)</a>:</h4>
<p>would already let us write that fn more efficiently</p>



<a name="130290599"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130290599" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130290599">(Jul 25 2018 at 17:40)</a>:</h4>
<p>oh sounds interesting indeed</p>



<a name="130290601"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130290601" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130290601">(Jul 25 2018 at 17:40)</a>:</h4>
<p>we wouldn't have to do the "unroll" trick</p>



<a name="130290604"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130290604" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130290604">(Jul 25 2018 at 17:40)</a>:</h4>
<p>I know eddyb wanted it anyway</p>



<a name="130290612"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130290612" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130290612">(Jul 25 2018 at 17:40)</a>:</h4>
<p><em>that</em> I can write up right now</p>



<a name="130290706"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130290706" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130290706">(Jul 25 2018 at 17:42)</a>:</h4>
<p>for %age I think the various unroll_place monomorphizations tally up to 12-13% of the total</p>



<a name="130290710"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130290710" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130290710">(Jul 25 2018 at 17:42)</a>:</h4>
<p>fascinating</p>



<a name="130290713"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130290713" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130290713">(Jul 25 2018 at 17:42)</a>:</h4>
<p>lots of loans :)</p>



<a name="130290715"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130290715" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130290715">(Jul 25 2018 at 17:42)</a>:</h4>
<p>and lots of accesses :)</p>



<a name="130290725"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130290725" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130290725">(Jul 25 2018 at 17:42)</a>:</h4>
<p>it's really called a lot for this static variable :)</p>



<a name="130290727"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130290727" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130290727">(Jul 25 2018 at 17:42)</a>:</h4>
<p>without the hashing, you'd still have to do the comparisons, but they'd be a lot faster</p>



<a name="130290822"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130290822" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130290822">(Jul 25 2018 at 17:44)</a>:</h4>
<p>njn also mentioned <code>precompute_borrows_out_of_scope</code> being problematic but I haven't looked at it yet</p>



<a name="130290988"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130290988" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130290988">(Jul 25 2018 at 17:47)</a>:</h4>
<p>and ofc the <code>push_type_live_constraint</code> we mentioned before, where they all end up being the same type but we don't know/notice it here or before; indeed it seems like we could handle 'static in some quick/fast way somewhere :/</p>



<a name="130291012"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130291012" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130291012">(Jul 25 2018 at 17:47)</a>:</h4>
<p><span class="user-mention" data-user-id="116113">@lqd</span> I wrote up <a href="https://github.com/rust-lang/rust/issues/52708" target="_blank" title="https://github.com/rust-lang/rust/issues/52708">https://github.com/rust-lang/rust/issues/52708</a></p>



<a name="130291062"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130291062" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130291062">(Jul 25 2018 at 17:48)</a>:</h4>
<p>as for <code>precompute_borrows_out_of_scope</code>, I don't really know how to do that much better tbh</p>



<a name="130291136"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130291136" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130291136">(Jul 25 2018 at 17:49)</a>:</h4>
<p>super, thanks for writing this up :)</p>



<a name="130291525"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130291525" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130291525">(Jul 25 2018 at 17:54)</a>:</h4>
<p>do you think you might poke at it? :)</p>



<a name="130291533"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130291533" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130291533">(Jul 25 2018 at 17:55)</a>:</h4>
<p>I could try to be more specific</p>



<a name="130291545"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130291545" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130291545">(Jul 25 2018 at 17:55)</a>:</h4>
<p>it's one of those "nice, pure refactoring" sort of tasks I guess</p>



<a name="130291552"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130291552" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130291552">(Jul 25 2018 at 17:55)</a>:</h4>
<p>maybe <span class="user-mention" data-user-id="116266">@Santiago Pastorino</span> might be interested :)</p>



<a name="130291616"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130291616" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130291616">(Jul 25 2018 at 17:56)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> sorry, wasn't following up, interested in what?</p>



<a name="130291617"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130291617" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130291617">(Jul 25 2018 at 17:56)</a>:</h4>
<p>do you think it's something one can get done in a couple days (before I leave on vacation) ?</p>



<a name="130291627"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130291627" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130291627">(Jul 25 2018 at 17:56)</a>:</h4>
<p>maybe more than a couple of days</p>



<a name="130291631"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130291631" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130291631">(Jul 25 2018 at 17:56)</a>:</h4>
<p>hard to tell</p>



<a name="130291634"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130291634" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> DPC <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130291634">(Jul 25 2018 at 17:56)</a>:</h4>
<p>i can chip in if you don't complete it</p>



<a name="130291637"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130291637" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130291637">(Jul 25 2018 at 17:56)</a>:</h4>
<p>but it will affect a non-trivial chunk of code</p>



<a name="130291649"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130291649" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130291649">(Jul 25 2018 at 17:56)</a>:</h4>
<p><span class="user-mention" data-user-id="116266">@Santiago Pastorino</span> interestedin <a href="https://github.com/rust-lang/rust/issues/52708" target="_blank" title="https://github.com/rust-lang/rust/issues/52708">#52708</a></p>



<a name="130291659"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130291659" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130291659">(Jul 25 2018 at 17:56)</a>:</h4>
<p>sounds good</p>



<a name="130291666"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130291666" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130291666">(Jul 25 2018 at 17:56)</a>:</h4>
<p>I'd have to think about the order of steps to take</p>



<a name="130291673"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130291673" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130291673">(Jul 25 2018 at 17:57)</a>:</h4>
<p>I'm also curious to hear what <span class="user-mention" data-user-id="119009">@Eduard-Mihai Burtescu</span> thinks</p>



<a name="130291677"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130291677" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130291677">(Jul 25 2018 at 17:57)</a>:</h4>
<p>but didn't understand if @lqd was going to tackle it</p>



<a name="130291683"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130291683" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130291683">(Jul 25 2018 at 17:57)</a>:</h4>
<p>I think it's still up in the air :)</p>



<a name="130291699"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130291699" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130291699">(Jul 25 2018 at 17:57)</a>:</h4>
<p>I can do it if you want</p>



<a name="130291700"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130291700" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130291700">(Jul 25 2018 at 17:57)</a>:</h4>
<p>apart from time constraint I'm game, that is we can collaborate on it :)</p>



<a name="130291703"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130291703" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130291703">(Jul 25 2018 at 17:57)</a>:</h4>
<p>had no tasks right now</p>



<a name="130291718"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130291718" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130291718">(Jul 25 2018 at 17:57)</a>:</h4>
<p><span class="user-mention" data-user-id="116113">@lqd</span> if you want, go ahead</p>



<a name="130291779"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130291779" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130291779">(Jul 25 2018 at 17:58)</a>:</h4>
<p>I'm fine with whatever you guys want :)</p>



<a name="130291781"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130291781" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130291781">(Jul 25 2018 at 17:58)</a>:</h4>
<p>is there something we can do about the 'statics specifically as well ?</p>



<a name="130291830"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130291830" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130291830">(Jul 25 2018 at 17:59)</a>:</h4>
<p>it feels like there must be</p>



<a name="130291833"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130291833" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130291833">(Jul 25 2018 at 17:59)</a>:</h4>
<p>so e.g.</p>



<a name="130291841"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130291841" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130291841">(Jul 25 2018 at 17:59)</a>:</h4>
<p>any variable that winds up in the final value</p>



<a name="130291864"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130291864" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130291864">(Jul 25 2018 at 17:59)</a>:</h4>
<p>clearly, all of its lifetimes must be <code>'static</code></p>



<a name="130291867"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130291867" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130291867">(Jul 25 2018 at 18:00)</a>:</h4>
<p>so maybe we could skip computing liveness on it</p>



<a name="130291915"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130291915" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130291915">(Jul 25 2018 at 18:00)</a>:</h4>
<p>I guess I should dump the html5ever MIR</p>



<a name="130291924"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130291924" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130291924">(Jul 25 2018 at 18:00)</a>:</h4>
<p><span class="user-mention" data-user-id="116113">@lqd</span> do you have a minimized version of the troublesome code?</p>



<a name="130291926"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130291926" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130291926">(Jul 25 2018 at 18:00)</a>:</h4>
<p>that would be helpful actually</p>



<a name="130291927"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130291927" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130291927">(Jul 25 2018 at 18:00)</a>:</h4>
<p>sure</p>



<a name="130291938"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130291938" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130291938">(Jul 25 2018 at 18:00)</a>:</h4>
<p>of the source not the MIR right ?</p>



<a name="130291948"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130291948" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130291948">(Jul 25 2018 at 18:00)</a>:</h4>
<p>if so: <a href="https://play.rust-lang.org/?gist=c3e6c21848eb4c2aee3ec047e1b9d911&amp;version=nightly&amp;mode=debug&amp;edition=2015" target="_blank" title="https://play.rust-lang.org/?gist=c3e6c21848eb4c2aee3ec047e1b9d911&amp;version=nightly&amp;mode=debug&amp;edition=2015">https://play.rust-lang.org/?gist=c3e6c21848eb4c2aee3ec047e1b9d911&amp;version=nightly&amp;mode=debug&amp;edition=2015</a></p>



<a name="130291958"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130291958" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130291958">(Jul 25 2018 at 18:01)</a>:</h4>
<p>(rustc will OOM if you compile tho ;)</p>



<a name="130292090"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130292090" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130292090">(Jul 25 2018 at 18:03)</a>:</h4>
<p>although I'm not sure one could call that "minimized" :/ (but easy to do so, reducing the number of entries in the arrays, à la <a href="https://play.rust-lang.org/?gist=c80f5a6133a739bcb084677f09ae4501&amp;version=nightly&amp;mode=debug&amp;edition=2015" target="_blank" title="https://play.rust-lang.org/?gist=c80f5a6133a739bcb084677f09ae4501&amp;version=nightly&amp;mode=debug&amp;edition=2015">https://play.rust-lang.org/?gist=c80f5a6133a739bcb084677f09ae4501&amp;version=nightly&amp;mode=debug&amp;edition=2015</a>)</p>



<a name="130292469"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130292469" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130292469">(Jul 25 2018 at 18:10)</a>:</h4>
<p>right</p>



<a name="130292484"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130292484" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130292484">(Jul 25 2018 at 18:11)</a>:</h4>
<p>that seems awfully minimal :)</p>



<a name="130292561"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130292561" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130292561">(Jul 25 2018 at 18:12)</a>:</h4>
<p>it should at least show the &amp;str regions :)</p>



<a name="130292596"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130292596" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130292596">(Jul 25 2018 at 18:13)</a>:</h4>
<p>presumably something like this ought to show the general pattern, right</p>
<div class="codehilite"><pre><span></span><span class="cp">#![feature(nll)]</span><span class="w"></span>

<span class="k">pub</span><span class="w"> </span><span class="k">struct</span> <span class="nc">Map</span><span class="o">&lt;</span><span class="n">K</span>: <span class="nb">&#39;static</span><span class="p">,</span><span class="w"> </span><span class="n">V</span>: <span class="nb">&#39;static</span><span class="o">&gt;</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w">    </span><span class="k">pub</span><span class="w"> </span><span class="n">key</span>: <span class="kt">u64</span><span class="p">,</span><span class="w"></span>
<span class="w">    </span><span class="k">pub</span><span class="w"> </span><span class="n">disps</span>: <span class="nc">Slice</span><span class="o">&lt;</span><span class="p">(</span><span class="kt">u32</span><span class="p">,</span><span class="w"> </span><span class="kt">u32</span><span class="p">)</span><span class="o">&gt;</span><span class="p">,</span><span class="w"></span>
<span class="w">    </span><span class="k">pub</span><span class="w"> </span><span class="n">entries</span>: <span class="nc">Slice</span><span class="o">&lt;</span><span class="p">(</span><span class="n">K</span><span class="p">,</span><span class="w"> </span><span class="n">V</span><span class="p">)</span><span class="o">&gt;</span><span class="p">,</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>

<span class="k">pub</span><span class="w"> </span><span class="k">enum</span> <span class="nc">Slice</span><span class="o">&lt;</span><span class="n">T</span>: <span class="nb">&#39;static</span><span class="o">&gt;</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w">    </span><span class="n">Static</span><span class="p">(</span><span class="o">&amp;</span><span class="nb">&#39;static</span><span class="w"> </span><span class="p">[</span><span class="n">T</span><span class="p">]),</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>

<span class="k">pub</span><span class="w"> </span><span class="k">static</span><span class="w"> </span><span class="n">NAMED_ENTITIES</span>: <span class="nc">Map</span><span class="o">&lt;&amp;</span><span class="nb">&#39;static</span><span class="w"> </span><span class="kt">str</span><span class="p">,</span><span class="w"> </span><span class="p">(</span><span class="kt">u32</span><span class="p">,</span><span class="w"> </span><span class="kt">u32</span><span class="p">)</span><span class="o">&gt;</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">Map</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w">    </span><span class="n">key</span>: <span class="mi">1897749892740154578</span><span class="p">,</span><span class="w"></span>
<span class="w">    </span><span class="n">disps</span>: <span class="nc">Slice</span>::<span class="n">Static</span><span class="p">(</span><span class="o">&amp;</span><span class="p">[</span><span class="w"></span>
<span class="w">        </span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">4</span><span class="p">),</span><span class="w"></span>
<span class="w">        </span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">4</span><span class="p">),</span><span class="w"></span>
<span class="w">        </span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">4</span><span class="p">),</span><span class="w"></span>
<span class="w">        </span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">4</span><span class="p">),</span><span class="w"></span>
<span class="w">        </span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">4</span><span class="p">),</span><span class="w"></span>
<span class="w">        </span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">4</span><span class="p">),</span><span class="w"></span>
<span class="w">        </span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">4</span><span class="p">),</span><span class="w"></span>
<span class="w">    </span><span class="p">]),</span><span class="w"></span>
<span class="w">    </span><span class="n">entries</span>: <span class="nc">Slice</span>::<span class="n">Static</span><span class="p">(</span><span class="o">&amp;</span><span class="p">[</span><span class="w"></span>
<span class="w">        </span><span class="p">(</span><span class="s">&quot;GreaterSlan&quot;</span><span class="p">,</span><span class="w"> </span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">)),</span><span class="w"></span>
<span class="w">        </span><span class="p">(</span><span class="s">&quot;GreaterSlan&quot;</span><span class="p">,</span><span class="w"> </span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">)),</span><span class="w"></span>
<span class="w">        </span><span class="p">(</span><span class="s">&quot;GreaterSlan&quot;</span><span class="p">,</span><span class="w"> </span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">)),</span><span class="w"></span>
<span class="w">        </span><span class="p">(</span><span class="s">&quot;GreaterSlan&quot;</span><span class="p">,</span><span class="w"> </span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">)),</span><span class="w"></span>
<span class="w">        </span><span class="p">(</span><span class="s">&quot;GreaterSlan&quot;</span><span class="p">,</span><span class="w"> </span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">)),</span><span class="w"></span>
<span class="w">        </span><span class="p">(</span><span class="s">&quot;GreaterSlan&quot;</span><span class="p">,</span><span class="w"> </span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">)),</span><span class="w"></span>
<span class="w">        </span><span class="p">(</span><span class="s">&quot;GreaterSlan&quot;</span><span class="p">,</span><span class="w"> </span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">)),</span><span class="w"></span>
<span class="w">    </span><span class="p">]),</span><span class="w"></span>
<span class="p">};</span><span class="w"></span>


<span class="k">fn</span> <span class="nf">main</span><span class="p">()</span><span class="w"> </span><span class="p">{</span><span class="w"></span>

<span class="p">}</span><span class="w"></span>
</pre></div>



<a name="130292621"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130292621" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130292621">(Jul 25 2018 at 18:13)</a>:</h4>
<p>I believe so</p>



<a name="130292698"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130292698" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130292698">(Jul 25 2018 at 18:14)</a>:</h4>
<p>ok so I could imagine doing a special-cased analysis targeting huge statics</p>



<a name="130292703"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130292703" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130292703">(Jul 25 2018 at 18:15)</a>:</h4>
<p>which seems to occur with non-trivial frequency ;)</p>



<a name="130292712"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130292712" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130292712">(Jul 25 2018 at 18:15)</a>:</h4>
<p>basically starting from <code>_0</code>, we walk backwards to find those locals whose data gets stored into <code>_0</code></p>



<a name="130292716"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130292716" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130292716">(Jul 25 2018 at 18:15)</a>:</h4>
<p>and we don't compute liveness for them</p>



<a name="130292720"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130292720" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130292720">(Jul 25 2018 at 18:15)</a>:</h4>
<p>but rather for all their regions to <code>'static</code></p>



<a name="130292721"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130292721" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130292721">(Jul 25 2018 at 18:15)</a>:</h4>
<p>something like that</p>



<a name="130292728"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130292728" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130292728">(Jul 25 2018 at 18:15)</a>:</h4>
<p>we ought to be able to do this pretty fast using a union-find sort of thing</p>



<a name="130292729"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130292729" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130292729">(Jul 25 2018 at 18:15)</a>:</h4>
<p>linear pass over the MIR I imagine</p>



<a name="130292795"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130292795" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130292795">(Jul 25 2018 at 18:17)</a>:</h4>
<p>basically whenever you have <code>_1 = _2</code> or <code>_1 = Aggregate { _2 }</code>,</p>



<a name="130292801"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130292801" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130292801">(Jul 25 2018 at 18:17)</a>:</h4>
<p>you would union <code>_1</code> and <code>_2</code></p>



<a name="130292804"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130292804" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130292804">(Jul 25 2018 at 18:17)</a>:</h4>
<p>then we would look at the end at the set of things union'd with <code>_0</code></p>



<a name="130292805"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130292805" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130292805">(Jul 25 2018 at 18:17)</a>:</h4>
<p>something like that</p>



<a name="130292870"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130292870" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130292870">(Jul 25 2018 at 18:18)</a>:</h4>
<p>would we do this right before the liveness:generate calls ?</p>



<a name="130292877"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130292877" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130292877">(Jul 25 2018 at 18:18)</a>:</h4>
<p>presumably yes</p>



<a name="130292897"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130292897" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130292897">(Jul 25 2018 at 18:19)</a>:</h4>
<p>I can investigate that</p>



<a name="130293116"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130293116" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130293116">(Jul 25 2018 at 18:24)</a>:</h4>
<p>should I open another issue about it?</p>



<a name="130293153"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130293153" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130293153">(Jul 25 2018 at 18:25)</a>:</h4>
<p>it'd also be good I think to look again at tuple-stress...</p>



<a name="130293170"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130293170" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130293170">(Jul 25 2018 at 18:25)</a>:</h4>
<p>since IIRC it is still pretty slow</p>



<a name="130293175"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130293175" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130293175">(Jul 25 2018 at 18:26)</a>:</h4>
<p>even though we basically eliminated liveness entirely there, right?</p>



<a name="130293218"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130293218" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130293218">(Jul 25 2018 at 18:26)</a>:</h4>
<p>might give us a hint what the next bottleneck will be</p>



<a name="130293231"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130293231" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130293231">(Jul 25 2018 at 18:26)</a>:</h4>
<p>opening an issue would be <span class="emoji emoji-1f44d" title="thumbs up">:thumbs_up:</span></p>



<a name="130293256"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130293256" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130293256">(Jul 25 2018 at 18:26)</a>:</h4>
<p>I can check tuple-stress, I feel like liveness is not a bottleneck there anymore but can't remember for sure hmm</p>



<a name="130293272"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130293272" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130293272">(Jul 25 2018 at 18:27)</a>:</h4>
<p>shouldn't be</p>



<a name="130293282"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130293282" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130293282">(Jul 25 2018 at 18:27)</a>:</h4>
<p>agreed</p>



<a name="130293287"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130293287" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130293287">(Jul 25 2018 at 18:27)</a>:</h4>
<p>but statics again could come into play</p>



<a name="130293291"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130293291" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130293291">(Jul 25 2018 at 18:27)</a>:</h4>
<p>tuple stress is one big static, isn't it?</p>



<a name="130293328"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130293328" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130293328">(Jul 25 2018 at 18:28)</a>:</h4>
<p>yeah</p>



<a name="130293372"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130293372" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130293372">(Jul 25 2018 at 18:29)</a>:</h4>
<p>since it's surely not liveness there anymore, it would interesting to see what this static exercises so much</p>



<a name="130293554"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130293554" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130293554">(Jul 25 2018 at 18:32)</a>:</h4>
<p>exactly</p>



<a name="130293556"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130293556" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130293556">(Jul 25 2018 at 18:32)</a>:</h4>
<p>filed <a href="https://github.com/rust-lang/rust/issues/52713" target="_blank" title="https://github.com/rust-lang/rust/issues/52713">https://github.com/rust-lang/rust/issues/52713</a></p>



<a name="130293560"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130293560" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130293560">(Jul 25 2018 at 18:33)</a>:</h4>
<p>thanks niko</p>



<a name="130293563"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130293563" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130293563">(Jul 25 2018 at 18:33)</a>:</h4>
<p>whatever is affecting tuple-stress will probably affect html5ever once we do <a href="https://github.com/rust-lang/rust/issues/52713" target="_blank" title="https://github.com/rust-lang/rust/issues/52713">#52713</a> :)</p>



<a name="130293746"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130293746" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130293746">(Jul 25 2018 at 18:36)</a>:</h4>
<p>I assume any big lump of statics will exercise regions renumbering</p>



<a name="130293778"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130293778" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130293778">(Jul 25 2018 at 18:37)</a>:</h4>
<p>is this a different walk/visit, should we skip tys without regions here <em>also</em> ? (maybe it's just log heavy and doesn't contribute much to the overall time, I'll need to check)</p>



<a name="130295131"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130295131" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130295131">(Jul 25 2018 at 19:02)</a>:</h4>
<blockquote>
<p>I assume any big lump of statics will exercise regions renumbering</p>
</blockquote>
<p>region renumbering? it shows up on the profiles, but usually very small</p>



<a name="130295493"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130295493" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130295493">(Jul 25 2018 at 19:09)</a>:</h4>
<p>here, dataflow looks interesting, looking at logs while valgrind slowly runs</p>



<a name="130295498"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130295498" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130295498">(Jul 25 2018 at 19:09)</a>:</h4>
<p>eg drop_flag_effects</p>



<a name="130295551"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130295551" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130295551">(Jul 25 2018 at 19:10)</a>:</h4>
<p>of which there are a lot</p>



<a name="130295562"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130295562" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130295562">(Jul 25 2018 at 19:10)</a>:</h4>
<p>hmmmmmmm</p>



<a name="130295569"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130295569" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130295569">(Jul 25 2018 at 19:10)</a>:</h4>
<p>what on earth <em>is</em> that</p>



<a name="130295572"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130295572" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130295572">(Jul 25 2018 at 19:10)</a>:</h4>
<p>and the logs are coming slooooowly</p>



<a name="130295573"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130295573" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130295573">(Jul 25 2018 at 19:10)</a>:</h4>
<p>I've seen it on the profiles before</p>



<a name="130295574"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130295574" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130295574">(Jul 25 2018 at 19:11)</a>:</h4>
<p>not very familiar to me</p>



<a name="130295590"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130295590" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130295590">(Jul 25 2018 at 19:11)</a>:</h4>
<p>oh, it's just general manipulation of drop paths etc</p>



<a name="130295593"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130295593" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130295593">(Jul 25 2018 at 19:11)</a>:</h4>
<p>so I guess this is just computing what is initialized etc hmm</p>



<a name="130295608"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130295608" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130295608">(Jul 25 2018 at 19:11)</a>:</h4>
<p>we mgiht be able to speed that up, that code is kinda old and not (I don't think) esp optimized, iirc</p>



<a name="130295675"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130295675" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130295675">(Jul 25 2018 at 19:12)</a>:</h4>
<p>I'm looking forward to the profile, if it has clear indicators, otherwise it's just talkative logs</p>



<a name="130297295"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130297295" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130297295">(Jul 25 2018 at 19:40)</a>:</h4>
<p>the profile is <a href="https://www.dropbox.com/s/s9rwnot3rvfq4z7/tuple-stress-nll.txt?dl=0" target="_blank" title="https://www.dropbox.com/s/s9rwnot3rvfq4z7/tuple-stress-nll.txt?dl=0">available</a> -- 35% memset, 43% <code>bitslice::bitwise</code> -- mostly called from <a href="https://github.com/rust-lang/rust/blob/master/src/librustc_mir/borrow_check/flows.rs#L100-L102" target="_blank" title="https://github.com/rust-lang/rust/blob/master/src/librustc_mir/borrow_check/flows.rs#L100-L102">here</a> apparently, and from other places in dataflow, do_mir_borrowck -- all in all mostly from <code>FlowsAtLocation</code>: <code>apply_local_effect</code>, and <code>reconstruct_statement_effect</code></p>
<div class="message_inline_ref"><a href="https://www.dropbox.com/s/s9rwnot3rvfq4z7/tuple-stress-nll.txt?dl=0" target="_blank" title="tuple-stress-nll.txt"><img src="https://www.dropbox.com/static/images/spectrum-icons/generated/content/content-txt-large.png"></a><div><div class="message_inline_image_title">tuple-stress-nll.txt</div><desc class="message_inline_image_desc"></desc></div></div>



<a name="130297317"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130297317" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130297317">(Jul 25 2018 at 19:40)</a>:</h4>
<p>(bbl)</p>



<a name="130297669"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130297669" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130297669">(Jul 25 2018 at 19:43)</a>:</h4>
<p>huh</p>



<a name="130297672"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130297672" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130297672">(Jul 25 2018 at 19:43)</a>:</h4>
<p>interesting</p>



<a name="130301158"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130301158" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130301158">(Jul 25 2018 at 20:43)</a>:</h4>
<p>I'm guessing Ariel would be the most familiar with this, slightly unfortunate :)</p>



<a name="130301213"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130301213" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130301213">(Jul 25 2018 at 20:44)</a>:</h4>
<p><span class="user-mention" data-user-id="116083">@pnkfelix</span> too</p>



<a name="130301221"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130301221" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130301221">(Jul 25 2018 at 20:44)</a>:</h4>
<p>but basically it sounds like</p>



<a name="130301225"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130301225" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130301225">(Jul 25 2018 at 20:44)</a>:</h4>
<p>it's computing the initializtion sets</p>



<a name="130301229"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130301229" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130301229">(Jul 25 2018 at 20:44)</a>:</h4>
<p>and the other various bits of moveck</p>



<a name="130301232"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130301232" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130301232">(Jul 25 2018 at 20:44)</a>:</h4>
<p>those are a lot of bits and a lot of variables</p>



<a name="130301246"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130301246" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130301246">(Jul 25 2018 at 20:45)</a>:</h4>
<p>not sure yet how we can avoid that... maybe there are some tricks we can do</p>



<a name="130301268"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/130301268" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#130301268">(Jul 25 2018 at 20:45)</a>:</h4>
<p>yeah maybe Felix will have ideas as well</p>



<a name="131067669"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131067669" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131067669">(Aug 07 2018 at 20:38)</a>:</h4>
<p>So folks: which benchmarks do you think we should focus on?</p>
<p>Here are the measurements that <span class="user-mention" data-user-id="116113">@lqd</span> did: <a href="https://hackmd.io/3r1ZnkUyRD2NMU-dnm_RPg?view#Timings-using-the-master-version-of-each-crate" target="_blank" title="https://hackmd.io/3r1ZnkUyRD2NMU-dnm_RPg?view#Timings-using-the-master-version-of-each-crate">link</a>. These compare the <strong>current master</strong> performance for most crates. Looking at these, <code>cargo</code> is the worst (at 16%). It's also part of bootstrap, so that seems important.</p>
<p>The latest clap-rs and html5ever are also ungreat, at about 15% each.</p>
<p>It'd be a nice goal to get the "master" versions of all crates under 10% overhead I think. Perhaps that should be the goal.</p>



<a name="131067672"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131067672" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131067672">(Aug 07 2018 at 20:38)</a>:</h4>
<p>I'd also like to measure the html5ever that's on perf but <em>with</em> the liveness optimization applied, just to get a sense of that.</p>



<a name="131068169"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131068169" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131068169">(Aug 07 2018 at 20:48)</a>:</h4>
<p>Do we know if/feel like the non-liveness parts of html5ever and tuple stress will happen in the wild ?</p>



<a name="131068304"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131068304" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131068304">(Aug 07 2018 at 20:51)</a>:</h4>
<p>don't know</p>



<a name="131068315"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131068315" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131068315">(Aug 07 2018 at 20:51)</a>:</h4>
<p>I mean I suppose other people will make massive constants :)</p>



<a name="131068322"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131068322" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131068322">(Aug 07 2018 at 20:51)</a>:</h4>
<p>I think we should definitely optimize them</p>



<a name="131068449"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131068449" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131068449">(Aug 07 2018 at 20:53)</a>:</h4>
<p>another round of profiling on the master crates might be worthwhile to find “in the wild” patterns we don’t know about yet, vs the ones on perf.rlo we already know about and are working on; cargo, clap, html5ever just to see if there’s low hanging fruit ?</p>



<a name="131068543"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131068543" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131068543">(Aug 07 2018 at 20:55)</a>:</h4>
<p>I'm currently profiling cargo master</p>



<a name="131068872"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131068872" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131068872">(Aug 07 2018 at 21:00)</a>:</h4>
<p>hopefully it matches with the other perf ideas you hand and mentioned recently. 10% seems an interesting goal (I wonder how much parallel queries improve things)</p>



<a name="131068888"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131068888" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131068888">(Aug 07 2018 at 21:01)</a>:</h4>
<p>well, initial results on cargo...</p>



<a name="131068922"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131068922" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131068922">(Aug 07 2018 at 21:02)</a>:</h4>
<p>most of the time is in <code>nll::compute_regions</code> (58% of borrowck) and in particular the typeck (48%)</p>



<a name="131068997"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131068997" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131068997">(Aug 07 2018 at 21:02)</a>:</h4>
<p>canonicalization winds up at about 6% of borrowck (not a ton)</p>



<a name="131069000"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131069000" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131069000">(Aug 07 2018 at 21:02)</a>:</h4>
<p>there's no <em>glaringly obvious</em> hot spots</p>



<a name="131069089"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131069089" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131069089">(Aug 07 2018 at 21:04)</a>:</h4>
<p>on html5ever on perf, disabling liveness altogether yielded -25% IIRC, so with the liveness perf optimization it will probably still be too slow</p>



<a name="131069091"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131069091" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131069091">(Aug 07 2018 at 21:04)</a>:</h4>
<p>well we know how fast it is</p>



<a name="131069103"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131069103" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131069103">(Aug 07 2018 at 21:05)</a>:</h4>
<p>2,081.20%</p>



<a name="131069111"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131069111" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131069111">(Aug 07 2018 at 21:05)</a>:</h4>
<p>instead of 3000%</p>



<a name="131069114"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131069114" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131069114">(Aug 07 2018 at 21:05)</a>:</h4>
<p>so yeah a solid win but not there yet :)</p>



<a name="131069183"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131069183" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131069183">(Aug 07 2018 at 21:06)</a>:</h4>
<p>true :) I had completely forgotten you had finished this line of work</p>



<a name="131069227"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131069227" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131069227">(Aug 07 2018 at 21:07)</a>:</h4>
<p>the rest should be the moveck/tuple stress situation, I don't think Felix was able to look at it before leaving</p>



<a name="131069244"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131069244" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131069244">(Aug 07 2018 at 21:07)</a>:</h4>
<p>so a promising areas albeit harder to tackle I guess</p>



<a name="131069307"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131069307" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131069307">(Aug 07 2018 at 21:08)</a>:</h4>
<p>wins are definitely getting harder :)</p>



<a name="131069328"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131069328" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131069328">(Aug 07 2018 at 21:09)</a>:</h4>
<p>it's interesting that we spent 11% of our time in <code>prove_predicate</code></p>



<a name="131069386"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131069386" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131069386">(Aug 07 2018 at 21:10)</a>:</h4>
<p>actually also kind of interesting...the typeck seems to have a lot of overhead that is just kind of "looking at the MIR" I guess</p>



<a name="131069393"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131069393" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131069393">(Aug 07 2018 at 21:10)</a>:</h4>
<p>ok, well, I should look at some other tests</p>



<a name="131069395"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131069395" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131069395">(Aug 07 2018 at 21:10)</a>:</h4>
<p>I don't think i'm seeing anything too obvious in cargo</p>



<a name="131069401"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131069401" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131069401">(Aug 07 2018 at 21:10)</a>:</h4>
<p>I have some vague ideas but they are along the lines of "try this refactoring and see if we can clean it up"</p>



<a name="131069428"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131069428" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131069428">(Aug 07 2018 at 21:11)</a>:</h4>
<p>are there such mir passes we can maybe combine so we "look at the mir" less in typeck ?</p>



<a name="131069467"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131069467" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131069467">(Aug 07 2018 at 21:12)</a>:</h4>
<p>it does do 2 passes I think</p>



<a name="131069474"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131069474" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131069474">(Aug 07 2018 at 21:12)</a>:</h4>
<p>not necessarily for a good reason</p>



<a name="131069475"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131069475" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131069475">(Aug 07 2018 at 21:12)</a>:</h4>
<p>might help</p>



<a name="131069483"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131069483" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131069483">(Aug 07 2018 at 21:12)</a>:</h4>
<p>iirc the first pass is a kind of sanity check</p>



<a name="131069486"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131069486" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131069486">(Aug 07 2018 at 21:12)</a>:</h4>
<p>to let the later pass make more assertions</p>



<a name="131069775"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131069775" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131069775">(Aug 07 2018 at 21:18)</a>:</h4>
<p>in case you are curious <span class="user-mention" data-user-id="116113">@lqd</span> I'm taking some notes <a href="https://docs.google.com/spreadsheets/d/1YRlzuDhZoYJXagvT09TacuT8vck2lEMrtBkDJ8h7_8M/edit?usp=sharing" target="_blank" title="https://docs.google.com/spreadsheets/d/1YRlzuDhZoYJXagvT09TacuT8vck2lEMrtBkDJ8h7_8M/edit?usp=sharing">in this google spreadsheet</a></p>



<a name="131069858"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131069858" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131069858">(Aug 07 2018 at 21:20)</a>:</h4>
<p>(pretty minimal, still it's interesting how similar the two are)</p>



<a name="131069874"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131069874" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131069874">(Aug 07 2018 at 21:20)</a>:</h4>
<p>oh nice! I was indeed curious :)</p>



<a name="131070041"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131070041" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131070041">(Aug 07 2018 at 21:24)</a>:</h4>
<p><code>liveness::generate</code> is still a non-trivial percentage, interestingly</p>



<a name="131070045"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131070045" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131070045">(Aug 07 2018 at 21:24)</a>:</h4>
<p>approx. 10%</p>



<a name="131070052"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131070052" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131070052">(Aug 07 2018 at 21:24)</a>:</h4>
<p><span class="user-mention" data-user-id="116113">@lqd</span> to build html5ever, it seems like <code>cargo-curl</code> didnt' work for me</p>



<a name="131070054"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131070054" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131070054">(Aug 07 2018 at 21:24)</a>:</h4>
<p>did you download from the main repo?</p>



<a name="131070074"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131070074" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131070074">(Aug 07 2018 at 21:25)</a>:</h4>
<p>I guess they have tags</p>



<a name="131070092"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131070092" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131070092">(Aug 07 2018 at 21:25)</a>:</h4>
<p>though they don't have a v0.5.4 tag :)</p>



<a name="131070145"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131070145" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131070145">(Aug 07 2018 at 21:26)</a>:</h4>
<p>well I can just use the version in rustc-perf I guess</p>



<a name="131070546"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131070546" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131070546">(Aug 07 2018 at 21:34)</a>:</h4>
<p>yeah so the html5ever (from perf) profile is completely different</p>



<a name="131070550"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131070550" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131070550">(Aug 07 2018 at 21:34)</a>:</h4>
<p><code>each_borrow_involving_path</code> is 41%</p>



<a name="131070561"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131070561" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131070561">(Aug 07 2018 at 21:35)</a>:</h4>
<p>which means that <a href="https://github.com/rust-lang/rust/issues/53159" target="_blank" title="https://github.com/rust-lang/rust/issues/53159">https://github.com/rust-lang/rust/issues/53159</a> might be huge</p>



<a name="131070627"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131070627" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131070627">(Aug 07 2018 at 21:36)</a>:</h4>
<p>html5ever I git cloned IIRC</p>



<a name="131070634"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131070634" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131070634">(Aug 07 2018 at 21:36)</a>:</h4>
<p>basically all the rest is the "collect borrows in scope"</p>



<a name="131070639"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131070639" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131070639">(Aug 07 2018 at 21:36)</a>:</h4>
<p>I don't yet have a smart idea how to do <em>that</em> much better</p>



<a name="131070645"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131070645" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131070645">(Aug 07 2018 at 21:36)</a>:</h4>
<p>but we could get it down to 10x overhead ;)</p>



<a name="131070652"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131070652" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131070652">(Aug 07 2018 at 21:37)</a>:</h4>
<p>ooh, I had an idea just now...</p>



<a name="131070659"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131070659" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131070659">(Aug 07 2018 at 21:37)</a>:</h4>
<p>well, might not work</p>



<a name="131070673"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131070673" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131070673">(Aug 07 2018 at 21:37)</a>:</h4>
<p>in particular, it might force us to compute liveness again :</p>



<a name="131070683"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131070683" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131070683">(Aug 07 2018 at 21:37)</a>:</h4>
<p>but, for posterity, the idea is:</p>



<a name="131070692"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131070692" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131070692">(Aug 07 2018 at 21:37)</a>:</h4>
<p>right now, we trace out the blocks where each borow is in scope</p>



<a name="131070694"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131070694" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131070694">(Aug 07 2018 at 21:37)</a>:</h4>
<p>we do this in a kind fo silly way and I think I could get some wins from refactoring that</p>



<a name="131070695"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131070695" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131070695">(Aug 07 2018 at 21:37)</a>:</h4>
<p>but leave that aside</p>



<a name="131070746"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131070746" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131070746">(Aug 07 2018 at 21:38)</a>:</h4>
<p>well, what I want to do is: if, during this trace, we were also looking for accesses to paths that conflict with the borrow</p>



<a name="131070750"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131070750" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131070750">(Aug 07 2018 at 21:38)</a>:</h4>
<p>then we could stop tracing as soon as we see that the borrowed path is dead</p>



<a name="131070755"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131070755" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131070755">(Aug 07 2018 at 21:38)</a>:</h4>
<p>but .. I think that this might not help here, because the paths do not go dead until the very end</p>



<a name="131070758"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131070758" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131070758">(Aug 07 2018 at 21:38)</a>:</h4>
<p>still, I also think...</p>



<a name="131070759"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131070759" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131070759">(Aug 07 2018 at 21:38)</a>:</h4>
<p>hmm</p>



<a name="131070764"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131070764" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131070764">(Aug 07 2018 at 21:38)</a>:</h4>
<p>for some borrows, there is no reason to record the borrow,</p>



<a name="131070767"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131070767" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131070767">(Aug 07 2018 at 21:38)</a>:</h4>
<p>because there is no possible thing that the user could do</p>



<a name="131070768"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131070768" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131070768">(Aug 07 2018 at 21:39)</a>:</h4>
<p>which could conflict with the borrow</p>



<a name="131070775"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131070775" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131070775">(Aug 07 2018 at 21:39)</a>:</h4>
<p>this might be the case here</p>



<a name="131070779"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131070779" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131070779">(Aug 07 2018 at 21:39)</a>:</h4>
<p>an example of such a borrow:</p>



<a name="131070785"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131070785" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131070785">(Aug 07 2018 at 21:39)</a>:</h4>
<p>if you have <code>x: &amp;u32</code> and you do <code>let y = &amp;*x</code></p>



<a name="131070792"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131070792" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131070792">(Aug 07 2018 at 21:39)</a>:</h4>
<p>there is no action that you can do with <code>x</code> that invalidates <code>y</code></p>



<a name="131070854"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131070854" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131070854">(Aug 07 2018 at 21:40)</a>:</h4>
<p>html5ever 0.5.4 is from perf though right ? if so, and for all other perf crates, I timed them from a rustc-perf repo clone, as the version is not enough a lot of times, that is perf had a specific commit rather than a released version</p>



<a name="131070861"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131070861" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131070861">(Aug 07 2018 at 21:40)</a>:</h4>
<p>this is not quite true for <code>let y = &amp;x</code>, even if <code>x</code> is not mutable, because we have to ensure that you don't move <code>x</code> etc</p>



<a name="131070865"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131070865" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131070865">(Aug 07 2018 at 21:40)</a>:</h4>
<p>but if <code>x</code> is a <em>static value</em></p>



<a name="131070867"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131070867" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131070867">(Aug 07 2018 at 21:40)</a>:</h4>
<p>as is the case here</p>



<a name="131070873"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131070873" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131070873">(Aug 07 2018 at 21:40)</a>:</h4>
<p>then I think maybe we can just not track this borrow at all</p>



<a name="131070882"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131070882" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131070882">(Aug 07 2018 at 21:40)</a>:</h4>
<p>that would basically "crack" the case I think</p>



<a name="131070905"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131070905" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131070905">(Aug 07 2018 at 21:41)</a>:</h4>
<p>actually maybe these cases are even just the simpler <code>&amp;*</code> sort of thing</p>



<a name="131070954"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131070954" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131070954">(Aug 07 2018 at 21:42)</a>:</h4>
<p>...looks like a bit of both, but most of the borrows are <code>&amp;*</code> borrows</p>



<a name="131070979"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131070979" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131070979">(Aug 07 2018 at 21:42)</a>:</h4>
<p>the other case is a bit trickier</p>



<a name="131070997"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131070997" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131070997">(Aug 07 2018 at 21:43)</a>:</h4>
<p>we sometimes at least have <code>StorageDead</code> for temporaries; I don't quite remember the rules we wound up with there, <span class="user-mention" data-user-id="119009">@eddyb</span> might</p>



<a name="131072150"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131072150" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131072150">(Aug 07 2018 at 22:08)</a>:</h4>
<p>would hashing the borrows in <a href="https://github.com/rust-lang/rust/issues/53159" target="_blank" title="https://github.com/rust-lang/rust/issues/53159">#53159</a> depend on the new Place repr from <a href="https://github.com/rust-lang/rust/issues/52708" target="_blank" title="https://github.com/rust-lang/rust/issues/52708">#52708</a> ?</p>



<a name="131072174"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131072174" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131072174">(Aug 07 2018 at 22:09)</a>:</h4>
<p>I thought at first it would but I realize now it doesn't</p>



<a name="131072178"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131072178" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131072178">(Aug 07 2018 at 22:09)</a>:</h4>
<p>that would just make it mildly faster</p>



<a name="131072185"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131072185" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131072185">(Aug 07 2018 at 22:09)</a>:</h4>
<p>I went ahead and implemented <a href="https://github.com/rust-lang/rust/issues/53176" target="_blank" title="https://github.com/rust-lang/rust/issues/53176">https://github.com/rust-lang/rust/issues/53176</a></p>



<a name="131072191"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131072191" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131072191">(Aug 07 2018 at 22:09)</a>:</h4>
<p>it is part of <a href="https://github.com/rust-lang/rust/pull/53177" target="_blank" title="https://github.com/rust-lang/rust/pull/53177">https://github.com/rust-lang/rust/pull/53177</a></p>



<a name="131072195"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131072195" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131072195">(Aug 07 2018 at 22:09)</a>:</h4>
<p>so we can measure the performance</p>



<a name="131072369"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131072369" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131072369">(Aug 07 2018 at 22:13)</a>:</h4>
<p>already :) oh this one should be good</p>



<a name="131072787"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131072787" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131072787">(Aug 07 2018 at 22:23)</a>:</h4>
<p>I'll do a local opt build to see if it works .. I've not really tested it very hard I guess</p>



<a name="131072837"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131072837" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131072837">(Aug 07 2018 at 22:24)</a>:</h4>
<p>but I basically gotta go now</p>



<a name="131073343"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131073343" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131073343">(Aug 07 2018 at 22:35)</a>:</h4>
<p>ok so assuming that this change is not wildly unsound...</p>



<a name="131073348"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131073348" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131073348">(Aug 07 2018 at 22:35)</a>:</h4>
<p>my local measurements suggest that html5ever goes to 2983msec (NLL) vs 1912msc (AST)</p>



<a name="131073391"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131073391" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131073391">(Aug 07 2018 at 22:36)</a>:</h4>
<p>ratio of 1.516 <span class="emoji emoji-1f389" title="tada">:tada:</span></p>



<a name="131073401"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131073401" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131073401">(Aug 07 2018 at 22:36)</a>:</h4>
<p>still not great but ...</p>



<a name="131073433"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131073433" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131073433">(Aug 07 2018 at 22:37)</a>:</h4>
<p>tuple-stress gets to a ratio of 2.29</p>



<a name="131073515"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131073515" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131073515">(Aug 07 2018 at 22:39)</a>:</h4>
<p>nicely done :)</p>



<a name="131073580"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131073580" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131073580">(Aug 07 2018 at 22:40)</a>:</h4>
<p>there seems to be a new bench since I did the measurements — keccak — which is at x1.8 now</p>



<a name="131073613"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131073613" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131073613">(Aug 07 2018 at 22:41)</a>:</h4>
<p>hmm</p>



<a name="131073616"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131073616" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131073616">(Aug 07 2018 at 22:41)</a>:</h4>
<p>never heard of it :)</p>



<a name="131073663"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131073663" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131073663">(Aug 07 2018 at 22:42)</a>:</h4>
<p>me neither</p>



<a name="131073701"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131073701" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131073701">(Aug 07 2018 at 22:43)</a>:</h4>
<p>but will be interesting to analyze :)</p>



<a name="131073874"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131073874" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131073874">(Aug 07 2018 at 22:47)</a>:</h4>
<p>1.516 is huge for html5ever, awesome</p>



<a name="131073919"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131073919" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131073919">(Aug 07 2018 at 22:48)</a>:</h4>
<p>I'm wondering what the rest is</p>



<a name="131073920"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131073920" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131073920">(Aug 07 2018 at 22:48)</a>:</h4>
<p>I can do a <code>perf record</code>...</p>



<a name="131073921"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131073921" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131073921">(Aug 07 2018 at 22:48)</a>:</h4>
<p>presuambly it's the dataflow stuff</p>



<a name="131074173"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131074173" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131074173">(Aug 07 2018 at 22:54)</a>:</h4>
<p>It would make <em>some</em> sense that it is</p>



<a name="131074206"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131074206" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131074206">(Aug 07 2018 at 22:55)</a>:</h4>
<p>actually, no</p>



<a name="131074207"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131074207" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131074207">(Aug 07 2018 at 22:56)</a>:</h4>
<p>oh and perf.rlo is testing the latest "escaping paths" PR so we'll have more numbers soon</p>



<a name="131074249"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131074249" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131074249">(Aug 07 2018 at 22:56)</a>:</h4>
<p>/me's world crumbles</p>



<a name="131074253"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131074253" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131074253">(Aug 07 2018 at 22:56)</a>:</h4>
<p>at least, not just that</p>



<a name="131074257"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131074257" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131074257">(Aug 07 2018 at 22:56)</a>:</h4>
<p>e.g. type-check is 19%</p>



<a name="131074259"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131074259" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131074259">(Aug 07 2018 at 22:56)</a>:</h4>
<p>(of borrowck)</p>



<a name="131074269"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131074269" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131074269">(Aug 07 2018 at 22:57)</a>:</h4>
<p>liveness is still relatively expensive... kind of interesting... I think we're still paying some cost to "walk the flow graph" or something</p>



<a name="131074277"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131074277" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131074277">(Aug 07 2018 at 22:57)</a>:</h4>
<p>we should check for the cast where there are literally zero variables that we are computing liveness for</p>



<a name="131074278"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131074278" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131074278">(Aug 07 2018 at 22:57)</a>:</h4>
<p>I believe that is the case here</p>



<a name="131074286"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131074286" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131074286">(Aug 07 2018 at 22:57)</a>:</h4>
<p>that'd be like a 13% win :)</p>



<a name="131074333"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131074333" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131074333">(Aug 07 2018 at 22:58)</a>:</h4>
<p>:)</p>



<a name="131074339"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131074339" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131074339">(Aug 07 2018 at 22:58)</a>:</h4>
<p>otherwise I think some non-trivial percentage is just that the bit sets are really, really big</p>



<a name="131074412"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131074412" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131074412">(Aug 07 2018 at 23:00)</a>:</h4>
<p>I would have not expected that it'd be so different from tuple-stress at this point :/</p>



<a name="131074443"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131074443" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131074443">(Aug 07 2018 at 23:01)</a>:</h4>
<p>even though some percentage of the time for the rest of the crate is not coming from the big static ofc</p>



<a name="131074460"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131074460" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131074460">(Aug 07 2018 at 23:01)</a>:</h4>
<p>something that occurred to me</p>



<a name="131074462"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131074462" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131074462">(Aug 07 2018 at 23:01)</a>:</h4>
<p>if we have a constraint <code>'foo: 'static</code></p>



<a name="131074465"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131074465" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131074465">(Aug 07 2018 at 23:01)</a>:</h4>
<p>it's kind of a special case</p>



<a name="131074469"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131074469" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131074469">(Aug 07 2018 at 23:02)</a>:</h4>
<p>we could tweak the SCC computation</p>



<a name="131074507"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131074507" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131074507">(Aug 07 2018 at 23:02)</a>:</h4>
<p>to <em>always</em> put them in the same SCC</p>



<a name="131074510"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131074510" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131074510">(Aug 07 2018 at 23:02)</a>:</h4>
<p>that might dramatically reduce the number of regions we need to worry about</p>



<a name="131074511"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131074511" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131074511">(Aug 07 2018 at 23:02)</a>:</h4>
<p>in the case of html5ever, anyway</p>



<a name="131074534"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131074534" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131074534">(Aug 07 2018 at 23:03)</a>:</h4>
<p>(we'd basically be adding synthetic edges from <code>'static</code> to every other region, from the POV of the SCC computation)</p>



<a name="131074537"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131074537" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131074537">(Aug 07 2018 at 23:03)</a>:</h4>
<p>basically SCC is not aware that <code>for&lt;'a&gt; 'static: 'a</code></p>



<a name="131074542"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131074542" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131074542">(Aug 07 2018 at 23:03)</a>:</h4>
<p>grr I guess I should file an issue for that too</p>



<a name="131074544"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131074544" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131074544">(Aug 07 2018 at 23:03)</a>:</h4>
<p>I really gotta go :)</p>



<a name="131074592"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131074592" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131074592">(Aug 07 2018 at 23:04)</a>:</h4>
<p>:) we can file it later</p>



<a name="131074629"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131074629" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131074629">(Aug 07 2018 at 23:05)</a>:</h4>
<p>filed <a href="https://github.com/rust-lang/rust/issues/53178" target="_blank" title="https://github.com/rust-lang/rust/issues/53178">https://github.com/rust-lang/rust/issues/53178</a></p>



<a name="131074631"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131074631" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131074631">(Aug 07 2018 at 23:05)</a>:</h4>
<p>ok, ciao!</p>



<a name="131074679"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131074679" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131074679">(Aug 07 2018 at 23:06)</a>:</h4>
<p><span class="emoji emoji-1f44b" title="wave">:wave:</span></p>



<a name="131082369"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131082369" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131082369">(Aug 08 2018 at 02:20)</a>:</h4>
<p>as expected from previous results <a href="https://github.com/rust-lang/rust/issues/53168" target="_blank" title="https://github.com/rust-lang/rust/issues/53168">#53168</a> improves html5ever's cpu and memory usage nicely :) <a href="https://perf.rust-lang.org/nll-dashboard.html?commit=aea424935d9666ab3a7efc69c7e88452e460479c&amp;stat=instructions%3Au" target="_blank" title="https://perf.rust-lang.org/nll-dashboard.html?commit=aea424935d9666ab3a7efc69c7e88452e460479c&amp;stat=instructions%3Au">dashboard for convenience</a></p>



<a name="131095764"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131095764" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131095764">(Aug 08 2018 at 08:55)</a>:</h4>
<p><span class="user-mention" data-user-id="116113">@lqd</span> I just did a profile of keccak</p>



<a name="131095769"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131095769" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131095769">(Aug 08 2018 at 08:55)</a>:</h4>
<p>one thing jumps out immediately: dominators computation at 17% !</p>



<a name="131095814"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131095814" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131095814">(Aug 08 2018 at 08:56)</a>:</h4>
<p>type-check only 9%</p>



<a name="131095817"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131095817" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131095817">(Aug 08 2018 at 08:56)</a>:</h4>
<p>it must have some crazy control flow</p>



<a name="131095834"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131095834" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131095834">(Aug 08 2018 at 08:56)</a>:</h4>
<p>also, lots of time in <code>unroll_place</code></p>



<a name="131095839"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131095839" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> davidtwco <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131095839">(Aug 08 2018 at 08:56)</a>:</h4>
<p>There's not a lot in <code>keccak</code>: <a href="https://github.com/rust-lang-nursery/rustc-perf/blob/master/collector/benchmarks/keccak/src/lib.rs" target="_blank" title="https://github.com/rust-lang-nursery/rustc-perf/blob/master/collector/benchmarks/keccak/src/lib.rs">https://github.com/rust-lang-nursery/rustc-perf/blob/master/collector/benchmarks/keccak/src/lib.rs</a></p>



<a name="131095861"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131095861" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131095861">(Aug 08 2018 at 08:57)</a>:</h4>
<p>well, those <code>unroll24!</code> macros etc</p>



<a name="131095866"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131095866" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131095866">(Aug 08 2018 at 08:57)</a>:</h4>
<p>presumably are generating just a lot of code</p>



<a name="131095912"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131095912" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131095912">(Aug 08 2018 at 08:58)</a>:</h4>
<p>but basically zero long-term borrows</p>



<a name="131096004"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131096004" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131096004">(Aug 08 2018 at 09:00)</a>:</h4>
<p>unroll_place should be bypassed with the « hash borrows » issue right ?</p>



<a name="131096061"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131096061" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131096061">(Aug 08 2018 at 09:02)</a>:</h4>
<p>that was the goal, yes</p>



<a name="131096066"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131096066" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131096066">(Aug 08 2018 at 09:02)</a>:</h4>
<p>I updated the <a href="https://docs.google.com/spreadsheets/d/1YRlzuDhZoYJXagvT09TacuT8vck2lEMrtBkDJ8h7_8M/edit#gid=0" target="_blank" title="https://docs.google.com/spreadsheets/d/1YRlzuDhZoYJXagvT09TacuT8vck2lEMrtBkDJ8h7_8M/edit#gid=0">google drive spreadsheet</a></p>



<a name="131096088"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131096088" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131096088">(Aug 08 2018 at 09:03)</a>:</h4>
<p>one thing that occurs to me with the hash borrows issue.. at least for the simplistic variant I proposed to do first ... if that if you have a lot of small borrows of the same place, then every access to that place will iterate over all of them</p>



<a name="131096101"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131096101" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131096101">(Aug 08 2018 at 09:03)</a>:</h4>
<p>I had an idea that required a lot more refactoring that would solve that though</p>



<a name="131096148"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131096148" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131096148">(Aug 08 2018 at 09:04)</a>:</h4>
<p>I should try to write it up, the idea was basically to combine determining the borrow's scope with checking for errors</p>



<a name="131096152"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131096152" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131096152">(Aug 08 2018 at 09:04)</a>:</h4>
<p>essentially, we walk forward from the point of each borrow until it goes out of scope (as today)</p>



<a name="131096157"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131096157" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131096157">(Aug 08 2018 at 09:04)</a>:</h4>
<p>we stop if we encounter something that kills the borrow</p>



<a name="131096160"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131096160" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131096160">(Aug 08 2018 at 09:05)</a>:</h4>
<p>and — as we go — we check each place that is accessed for conflicts with <strong>just that borrow</strong></p>



<a name="131096170"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131096170" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131096170">(Aug 08 2018 at 09:05)</a>:</h4>
<p>instead of walking the set of places, and checking against all active borrows</p>



<a name="131096171"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131096171" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131096171">(Aug 08 2018 at 09:05)</a>:</h4>
<p>sort of similar to the "invert liveness" idea</p>



<a name="131096173"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131096173" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131096173">(Aug 08 2018 at 09:05)</a>:</h4>
<p>I think this would be better but it requires us doing some non-trivial refactoring</p>



<a name="131096176"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131096176" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131096176">(Aug 08 2018 at 09:05)</a>:</h4>
<p>among other things, if you have many borrows with small duration, you will only check the things that occur in their (small) durations against them</p>



<a name="131096215"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131096215" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131096215">(Aug 08 2018 at 09:06)</a>:</h4>
<p>e.g., here, in keccak, we have many accesses to <code>array[x][y]</code></p>



<a name="131096218"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131096218" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131096218">(Aug 08 2018 at 09:06)</a>:</h4>
<p>those may or may not be borrows, not sure</p>



<a name="131096596"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131096596" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131096596">(Aug 08 2018 at 09:17)</a>:</h4>
<p>oh interesting</p>



<a name="131096687"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131096687" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131096687">(Aug 08 2018 at 09:18)</a>:</h4>
<p>from keccak:</p>
<div class="codehilite"><pre><span></span>    bb25993: {
</pre></div>



<a name="131096690"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131096690" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131096690">(Aug 08 2018 at 09:18)</a>:</h4>
<p>wow</p>



<a name="131096696"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131096696" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131096696">(Aug 08 2018 at 09:19)</a>:</h4>
<p>there may be no borrows at all...</p>



<a name="131096698"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131096698" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131096698">(Aug 08 2018 at 09:19)</a>:</h4>
<p>emacs is very slow to search this file :)</p>



<a name="131096753"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131096753" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131096753">(Aug 08 2018 at 09:20)</a>:</h4>
<p>well, there must be <em>some</em></p>



<a name="131096761"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131096761" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131096761">(Aug 08 2018 at 09:20)</a>:</h4>
<p>but still:</p>
<div class="codehilite"><pre><span></span>rg &#39;= &amp;&#39; mir_dump/rustc.f1600.-------.nll.0.mir
</pre></div>



<a name="131096762"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131096762" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131096762">(Aug 08 2018 at 09:20)</a>:</h4>
<p>but then how could <code>unroll_place</code> take so much time....?</p>



<a name="131096833"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131096833" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131096833">(Aug 08 2018 at 09:22)</a>:</h4>
<p>oh...</p>



<a name="131096835"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131096835" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131096835">(Aug 08 2018 at 09:22)</a>:</h4>
<p><code>check_for_invalidation_at_exit</code> also calls it</p>



<a name="131096842"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131096842" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131096842">(Aug 08 2018 at 09:22)</a>:</h4>
<p>as does <code>check_if_reassignment_to_immutable_state</code></p>



<a name="131096844"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131096844" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131096844">(Aug 08 2018 at 09:22)</a>:</h4>
<p>hmm</p>



<a name="131096856"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131096856" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131096856">(Aug 08 2018 at 09:23)</a>:</h4>
<p>that last one is atrocious</p>



<a name="131096980"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131096980" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131096980">(Aug 08 2018 at 09:24)</a>:</h4>
<p><code>check_for_invalidation_at_exit</code> is only called for each borrow</p>



<a name="131096989"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131096989" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131096989">(Aug 08 2018 at 09:24)</a>:</h4>
<p>something about <code>check_if_reassignment_to_immutable_state</code> seems very wrong to me</p>



<a name="131097000"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131097000" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131097000">(Aug 08 2018 at 09:24)</a>:</h4>
<p>it's iterating over <strong>all things that have been initialized</strong></p>



<a name="131097002"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131097002" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131097002">(Aug 08 2018 at 09:25)</a>:</h4>
<p>there must be some faster way to map to the bit we are interested in</p>



<a name="131098863"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131098863" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131098863">(Aug 08 2018 at 10:07)</a>:</h4>
<p>filed <a href="https://github.com/rust-lang/rust/issues/53189" target="_blank" title="https://github.com/rust-lang/rust/issues/53189">https://github.com/rust-lang/rust/issues/53189</a> — I think that <code>check_if_reassignment_to_immutable_state</code> is both slow <em>and</em> wrong</p>



<a name="131098865"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131098865" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131098865">(Aug 08 2018 at 10:07)</a>:</h4>
<p>a good combination :)</p>



<a name="131224831"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131224831" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131224831">(Aug 10 2018 at 08:40)</a>:</h4>
<p>OK, I was doing some more benchmarks...</p>



<a name="131224842"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131224842" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131224842">(Aug 10 2018 at 08:40)</a>:</h4>
<p>it seems like tuple-stress -- as <span class="user-mention" data-user-id="116113">@lqd</span> has noted in the past-- is entirely dominated by the "initialization" checks for some reason that is not clear to me</p>



<a name="131224848"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131224848" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131224848">(Aug 10 2018 at 08:41)</a>:</h4>
<p>i.e., I don't know why it is so different from html5ever but it appears to be?</p>



<a name="131224932"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131224932" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131224932">(Aug 10 2018 at 08:42)</a>:</h4>
<p>though <code>reconstruct_statement_effect</code> and friends are still prominent in html5ever</p>



<a name="131224967"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131224967" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131224967">(Aug 10 2018 at 08:43)</a>:</h4>
<p>it feels like we ought to be able to skip some of that work "by construction"</p>



<a name="131224969"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131224969" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131224969">(Aug 10 2018 at 08:44)</a>:</h4>
<p>for example, the compiler temporaries that we generate</p>



<a name="131225009"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131225009" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131225009">(Aug 10 2018 at 08:44)</a>:</h4>
<p>we do not need to do the full initialization checks on them</p>



<a name="131929893"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131929893" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131929893">(Aug 11 2018 at 00:35)</a>:</h4>
<p>After <a href="https://github.com/rust-lang/rust/pull/53258" target="_blank" title="https://github.com/rust-lang/rust/pull/53258">https://github.com/rust-lang/rust/pull/53258</a>, I see html5ever as a 1.40 ratio on my machine</p>



<a name="131931901"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131931901" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131931901">(Aug 11 2018 at 01:40)</a>:</h4>
<p>before:</p>
<p><a href="/user_uploads/4715/KssL1vZBoH_p-tfuWRqqtdWB/Screen-Shot-2018-08-10-at-9.27.01-PM.png" target="_blank" title="Screen-Shot-2018-08-10-at-9.27.01-PM.png">Screen-Shot-2018-08-10-at-9.27.01-PM.png</a> </p>
<div class="message_inline_image"><a href="/user_uploads/4715/KssL1vZBoH_p-tfuWRqqtdWB/Screen-Shot-2018-08-10-at-9.27.01-PM.png" target="_blank" title="Screen-Shot-2018-08-10-at-9.27.01-PM.png"><img src="/user_uploads/4715/KssL1vZBoH_p-tfuWRqqtdWB/Screen-Shot-2018-08-10-at-9.27.01-PM.png"></a></div><p>after:</p>
<p><a href="/user_uploads/4715/fcq5us8jKI7M2LNypx_ib5RB/Screen-Shot-2018-08-10-at-9.27.31-PM.png" target="_blank" title="Screen-Shot-2018-08-10-at-9.27.31-PM.png">Screen-Shot-2018-08-10-at-9.27.31-PM.png</a></p>
<div class="message_inline_image"><a href="/user_uploads/4715/fcq5us8jKI7M2LNypx_ib5RB/Screen-Shot-2018-08-10-at-9.27.31-PM.png" target="_blank" title="Screen-Shot-2018-08-10-at-9.27.31-PM.png"><img src="/user_uploads/4715/fcq5us8jKI7M2LNypx_ib5RB/Screen-Shot-2018-08-10-at-9.27.31-PM.png"></a></div>



<a name="131931903"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131931903" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131931903">(Aug 11 2018 at 01:40)</a>:</h4>
<p>nicht schlim</p>



<a name="131931926"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131931926" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131931926">(Aug 11 2018 at 01:41)</a>:</h4>
<p>now if only the try build would finish on <a href="https://github.com/rust-lang/rust/pull/53258" target="_blank" title="https://github.com/rust-lang/rust/pull/53258">https://github.com/rust-lang/rust/pull/53258</a> so I could run perf...</p>



<a name="131931932"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131931932" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131931932">(Aug 11 2018 at 01:41)</a>:</h4>
<p>/me -&gt; bed</p>



<a name="131931986"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131931986" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jake Goulding <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131931986">(Aug 11 2018 at 01:42)</a>:</h4>
<blockquote>
<p>I see html5ever as a 1.40 ratio on my machine</p>
</blockquote>
<p>This buries the lede a bit. It previously was 31.5x! Now html5ever is no longer the slowest!</p>



<a name="131932001"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131932001" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jake Goulding <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131932001">(Aug 11 2018 at 01:43)</a>:</h4>
<p>At least a few percent improvement on almost every other test as well</p>



<a name="131943387"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131943387" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131943387">(Aug 11 2018 at 07:31)</a>:</h4>
<p>wow awesome job! (and perf is running the PR as I write this)</p>



<a name="131943724"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131943724" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> davidtwco <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131943724">(Aug 11 2018 at 07:42)</a>:</h4>
<p>That's awesome.</p>



<a name="131945943"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131945943" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131945943">(Aug 11 2018 at 09:03)</a>:</h4>
<p>I’ll rerun the up-to-date versions once I’m back, and try and help simulacrum with the lightweight/daily tracking</p>



<a name="131947645"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131947645" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131947645">(Aug 11 2018 at 09:59)</a>:</h4>
<p><a href="https://github.com/rust-lang/rust/issues/53258" target="_blank" title="https://github.com/rust-lang/rust/issues/53258">#53258</a> looks <a href="https://perf.rust-lang.org/compare.html?start=0aa8d0320266b5579428312095fe49af05ada972&amp;end=1cb82c2cd55f855bf84a37a9c20236fab3e9c685" target="_blank" title="https://perf.rust-lang.org/compare.html?start=0aa8d0320266b5579428312095fe49af05ada972&amp;end=1cb82c2cd55f855bf84a37a9c20236fab3e9c685">pretty good</a>. Not quite as good as I had hoped...</p>



<a name="131947651"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131947651" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131947651">(Aug 11 2018 at 09:59)</a>:</h4>
<p>but very good on keccak</p>



<a name="131948454"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131948454" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131948454">(Aug 11 2018 at 10:22)</a>:</h4>
<p>the escaping paths and redundant borrows optimization worked beautifully <em>kisses fingers</em></p>



<a name="131948927"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131948927" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131948927">(Aug 11 2018 at 10:36)</a>:</h4>
<p>yeah, I'm happy with that</p>



<a name="131948935"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131948935" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131948935">(Aug 11 2018 at 10:36)</a>:</h4>
<p>I'm toying a bit with <a href="https://github.com/rust-lang/rust/issues/52460" target="_blank" title="https://github.com/rust-lang/rust/issues/52460">https://github.com/rust-lang/rust/issues/52460</a> locally</p>



<a name="131948937"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131948937" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131948937">(Aug 11 2018 at 10:36)</a>:</h4>
<p>I've been looking at cargo and some of the other cases</p>



<a name="131948938"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131948938" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131948938">(Aug 11 2018 at 10:36)</a>:</h4>
<p>vs the outliers</p>



<a name="131948942"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131948942" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131948942">(Aug 11 2018 at 10:36)</a>:</h4>
<p>and I have to admit that it is getting hard to see places to improve :/</p>



<a name="131948974"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131948974" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131948974">(Aug 11 2018 at 10:38)</a>:</h4>
<p>I still think we'll be able to make further progress, but I think the best avenue is sort of stepping back and seeing if we can do things smarter</p>



<a name="131949018"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131949018" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131949018">(Aug 11 2018 at 10:38)</a>:</h4>
<p>though I'd like to get njn's opinion, they have an eye for hotspots</p>



<a name="131949023"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131949023" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131949023">(Aug 11 2018 at 10:38)</a>:</h4>
<p>I'll ping them on irc maybe (done)</p>



<a name="131953719"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131953719" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131953719">(Aug 11 2018 at 12:42)</a>:</h4>
<p>they do have an eye for hotspots, said eye which they put into writing the cachegrind tool :D</p>



<a name="131953735"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/131953735" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#131953735">(Aug 11 2018 at 12:43)</a>:</h4>
<p>so good</p>



<a name="132470096"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/132470096" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> memoryruins <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#132470096">(Aug 20 2018 at 17:40)</a>:</h4>
<p><a href="/user_uploads/4715/4_gSXZuSY1iWBywpVBSXL6eY/IMG_0748.PNG" target="_blank" title="IMG_0748.PNG">IMG_0748.PNG</a></p>
<div class="message_inline_image"><a href="/user_uploads/4715/4_gSXZuSY1iWBywpVBSXL6eY/IMG_0748.PNG" target="_blank" title="IMG_0748.PNG"><img src="/user_uploads/4715/4_gSXZuSY1iWBywpVBSXL6eY/IMG_0748.PNG"></a></div>



<a name="132470147"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/132470147" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> memoryruins <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#132470147">(Aug 20 2018 at 17:41)</a>:</h4>
<p>keccak no longer up top and tuple-stress is so far down the list</p>



<a name="132470262"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/132470262" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#132470262">(Aug 20 2018 at 17:43)</a>:</h4>
<p>(html5ever is missing from the list since it doesn't currently build)</p>



<a name="132470310"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/132470310" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> memoryruins <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#132470310">(Aug 20 2018 at 17:44)</a>:</h4>
<p>(rip)</p>



<a name="132470847"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/132470847" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> memoryruins <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#132470847">(Aug 20 2018 at 17:53)</a>:</h4>
<p>curious if this will have noticeable change of html5ever build memory usage <a href="https://github.com/rust-lang/rust/pull/53384#issuecomment-414089811" target="_blank" title="https://github.com/rust-lang/rust/pull/53384#issuecomment-414089811">https://github.com/rust-lang/rust/pull/53384#issuecomment-414089811</a></p>



<a name="132471045"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/132471045" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#132471045">(Aug 20 2018 at 17:57)</a>:</h4>
<p>it doesn't seem like max-rss changed</p>



<a name="132471397"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/132471397" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Wesley Wiser <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#132471397">(Aug 20 2018 at 18:03)</a>:</h4>
<p>max-rss for html5ever is down significantly in <a href="https://github.com/rust-lang/rust/issues/53327" target="_blank" title="https://github.com/rust-lang/rust/issues/53327">#53327</a>: <a href="https://perf.rust-lang.org/compare.html?start=50503497492e9bab8bc8c5ad3fe403a3a80276d3&amp;end=ed285b7a46c0949465c4c1af1d968de39cc1dbbc&amp;stat=max-rss" target="_blank" title="https://perf.rust-lang.org/compare.html?start=50503497492e9bab8bc8c5ad3fe403a3a80276d3&amp;end=ed285b7a46c0949465c4c1af1d968de39cc1dbbc&amp;stat=max-rss">https://perf.rust-lang.org/compare.html?start=50503497492e9bab8bc8c5ad3fe403a3a80276d3&amp;end=ed285b7a46c0949465c4c1af1d968de39cc1dbbc&amp;stat=max-rss</a></p>



<a name="132471462"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/132471462" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#132471462">(Aug 20 2018 at 18:04)</a>:</h4>
<p>wow, down to 600MB :)</p>



<a name="132471577"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/132471577" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Wesley Wiser <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#132471577">(Aug 20 2018 at 18:07)</a>:</h4>
<p>Yeah, still a ways to go :)</p>



<a name="132478052"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/132478052" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jake Goulding <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#132478052">(Aug 20 2018 at 20:14)</a>:</h4>
<p>640MB ought to be enough for anybody</p>



<a name="132480235"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/132480235" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> memoryruins <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#132480235">(Aug 20 2018 at 20:54)</a>:</h4>
<p>except for my vps ;-; (really should upgrade that node..)</p>



<a name="132523523"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/132523523" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#132523523">(Aug 21 2018 at 15:20)</a>:</h4>
<blockquote>
<p>(html5ever is missing from the list since it doesn't currently build)</p>
</blockquote>
<p>wait what</p>



<a name="132523526"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/132523526" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#132523526">(Aug 21 2018 at 15:20)</a>:</h4>
<p>I missed that...</p>



<a name="132523530"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/132523530" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#132523530">(Aug 21 2018 at 15:20)</a>:</h4>
<p>why doesn't it build?</p>



<a name="132523642"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/132523642" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> kennytm <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#132523642">(Aug 21 2018 at 15:22)</a>:</h4>
<p>the errors encountered by perf can be found in <a href="https://perf.rust-lang.org/status.html" target="_blank" title="https://perf.rust-lang.org/status.html">https://perf.rust-lang.org/status.html</a></p>



<a name="132523656"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/132523656" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> kennytm <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#132523656">(Aug 21 2018 at 15:22)</a>:</h4>
<p>caused by use_extern_macro i think</p>



<a name="132523680"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/132523680" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> kennytm <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#132523680">(Aug 21 2018 at 15:23)</a>:</h4>
<div class="codehilite"><pre><span></span>error: macro-expanded `macro_export` macros from the current crate cannot be referred to by absolute paths
  --&gt; /home/alex/.cargo/registry/src/github.com-1ecc6299db9ec823/string_cache-0.2.29/src/lib.rs:71:13
   |
71 |     pub use atom;
   |             ^^^^
   |
note: the macro is defined here
  --&gt; /tmp/.tmpVgWdo3/target/debug/build/string_cache-3124df44a494850b/out/atom_macro.rs:2:1
   |
2  | / macro_rules! atom {
3  | | (\&quot;sdev\&quot;) =&gt; { $crate::Atom { unsafe_data: 0x2 } };
4  | | (\&quot;onstart\&quot;) =&gt; { $crate::Atom { unsafe_data: 0x100000002 } };
5  | | (\&quot;overflow\&quot;) =&gt; { $crate::Atom { unsafe_data: 0x200000002 } };
...  |
127| | (\&quot;stroke-miterlimit\&quot;) =&gt; { $crate::Atom { unsafe_data: 0x4f400000002 } };
127| | }
   | |_^
</pre></div>



<a name="132527076"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/132527076" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#132527076">(Aug 21 2018 at 16:24)</a>:</h4>
<p><span class="user-mention" data-user-id="125254">@kennytm</span> hmm -- seems .. bad? That was compiling on stable, I believe? Are we tracking this?</p>



<a name="132527353"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/132527353" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#132527353">(Aug 21 2018 at 16:29)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> Yes, <span class="user-mention" data-user-id="123856">@Vadim Petrochenkov</span> said it was needed but we can make it a future compat warning for now</p>



<a name="132527360"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/132527360" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#132527360">(Aug 21 2018 at 16:29)</a>:</h4>
<p>ok</p>



<a name="132527368"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/132527368" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#132527368">(Aug 21 2018 at 16:29)</a>:</h4>
<p>can we workaround for the purpose of perf? it's a shame to not be tracking html5ever...</p>



<a name="132527477"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/132527477" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#132527477">(Aug 21 2018 at 16:31)</a>:</h4>
<p>Yeah I need to write up a patch, hoping for sometime today</p>



<a name="132527485"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/132527485" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#132527485">(Aug 21 2018 at 16:32)</a>:</h4>
<p>(it's actually in a dependency, string-cache)</p>



<a name="132527526"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/132527526" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#132527526">(Aug 21 2018 at 16:32)</a>:</h4>
<p>I believe it should be trivial to fix</p>



<a name="132580658"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/132580658" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#132580658">(Aug 22 2018 at 14:19)</a>:</h4>
<p>so I did a bit of measurements on clap-rs. After <a href="https://github.com/rust-lang/rust/issues/53314" target="_blank" title="https://github.com/rust-lang/rust/issues/53314">#53314</a>, I get the following results (very coarse-grained, intentionally) for clap-rs:</p>
<div class="codehilite"><pre><span></span>athena. perf focus &#39;{do_mir_borrowck}&#39; --tree-callees --tree-min-percent 5 --tree-max-depth 2 --relative
Matcher    : {do_mir_borrowck}
Matches    : 91
Not Matches: 378
Percentage : 100%

Tree
| matched `{do_mir_borrowck}` (100% total, 0% self)
: | rustc_mir::dataflow::do_dataflow (41% total, 3% self)
: : | &lt;rustc_mir::dataflow::DataflowAnalysis&lt;&#39;a, &#39;tcx, BD&gt;&gt;::propagate (15% total, 1% self) [...]
: : | &lt;rustc_mir::dataflow::DataflowAnalysis&lt;&#39;a, &#39;tcx, D&gt;&gt;::propagate_bits_into_entry_set_for (14% total, 13% self) [...]
: | rustc_mir::borrow_check::nll::compute_regions (37% total, 0% self)
: : | rustc_mir::borrow_check::nll::type_check::type_check (28% total, 0% self) [...]
</pre></div>



<a name="132580735"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/132580735" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#132580735">(Aug 22 2018 at 14:20)</a>:</h4>
<p>based on this, it seems like <a href="https://github.com/rust-lang/rust/issues/53328" target="_blank" title="https://github.com/rust-lang/rust/issues/53328">#53328</a> might be a win (since it reduces the amount of dataflow we do), but it's a bit hard to tell (in particular, it'd be useful to separate out the various dataflows)</p>



<a name="132580757"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/132580757" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#132580757">(Aug 22 2018 at 14:20)</a>:</h4>
<p>improving the <code>compute_regions</code> and <code>type_check</code> code is the other avenue; I guess more digging is in order there</p>



<a name="132669190"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/132669190" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#132669190">(Aug 24 2018 at 00:48)</a>:</h4>
<p>did some more measurements. This time I broke down the dataflow by inserting dummy fns</p>



<a name="132669207"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/132669207" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#132669207">(Aug 24 2018 at 00:49)</a>:</h4>
<p>It looks like <code>flow_inits</code>, <code>flow_ever_inits</code>, and <code>flow_move_outs</code> each compromise about 1/3 of the dataflow time</p>



<a name="132669211"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/132669211" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#132669211">(Aug 24 2018 at 00:49)</a>:</h4>
<p>this explains why <a href="https://github.com/rust-lang/rust/issues/53394" target="_blank" title="https://github.com/rust-lang/rust/issues/53394">#53394</a> is a win (which <span class="user-mention" data-user-id="116266">@Santiago Pastorino</span> you and I have to get working on again)</p>



<a name="132669243"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/132669243" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#132669243">(Aug 24 2018 at 00:50)</a>:</h4>
<p>it is kind of amazing that <code>flow_ever_inits</code> is so expensive</p>



<a name="132669262"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/132669262" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#132669262">(Aug 24 2018 at 00:50)</a>:</h4>
<p>I think we are computing way more bits there than we probably have to</p>



<a name="132669270"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/132669270" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#132669270">(Aug 24 2018 at 00:50)</a>:</h4>
<p>however <a href="https://github.com/rust-lang/rust/issues/53328" target="_blank" title="https://github.com/rust-lang/rust/issues/53328">#53328</a> is less obviously going to be a win -- it <em>might</em> be, but it won't really come from skipping the dataflow per se</p>



<a name="132669280"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/132669280" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#132669280">(Aug 24 2018 at 00:51)</a>:</h4>
<p><a href="/user_uploads/4715/ikftdgnaUD2LQoKQz91Iwa7W/Screen-Shot-2018-08-23-at-8.51.01-PM.png" target="_blank" title="Screen-Shot-2018-08-23-at-8.51.01-PM.png">Screen-Shot-2018-08-23-at-8.51.01-PM.png</a></p>
<div class="message_inline_image"><a href="/user_uploads/4715/ikftdgnaUD2LQoKQz91Iwa7W/Screen-Shot-2018-08-23-at-8.51.01-PM.png" target="_blank" title="Screen-Shot-2018-08-23-at-8.51.01-PM.png"><img src="/user_uploads/4715/ikftdgnaUD2LQoKQz91Iwa7W/Screen-Shot-2018-08-23-at-8.51.01-PM.png"></a></div>



<a name="132669281"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/132669281" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#132669281">(Aug 24 2018 at 00:51)</a>:</h4>
<p>that's the relevant part of the profile</p>



<a name="132669289"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/132669289" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#132669289">(Aug 24 2018 at 00:51)</a>:</h4>
<p>(those are "percent of time spent in borrowck")</p>



<a name="132669350"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/132669350" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#132669350">(Aug 24 2018 at 00:52)</a>:</h4>
<p>also, this is a handy macro</p>
<div class="codehilite"><pre><span></span><span class="n">macro_rules</span><span class="o">!</span><span class="w"> </span><span class="n">inline_never</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w">    </span><span class="p">(</span><span class="cp">$name</span>:<span class="nc">ident</span><span class="p">,</span><span class="w"> </span><span class="cp">$body</span>:<span class="nc">expr</span><span class="p">)</span><span class="w"> </span><span class="o">=&gt;</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w">        </span><span class="p">{</span><span class="w"></span>
<span class="w">            </span><span class="cp">#[inline(never)]</span><span class="w"></span>
<span class="w">            </span><span class="k">fn</span> <span class="cp">$name</span><span class="o">&lt;</span><span class="n">R</span><span class="o">&gt;</span><span class="p">(</span><span class="n">arg</span>: <span class="nc">impl</span><span class="w"> </span><span class="nb">FnOnce</span><span class="p">()</span><span class="w"> </span>-&gt; <span class="nc">R</span><span class="p">)</span><span class="w"> </span>-&gt; <span class="nc">R</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="n">arg</span><span class="p">()</span><span class="w"> </span><span class="p">}</span><span class="w"></span>
<span class="w">            </span><span class="cp">$name</span><span class="p">(</span><span class="o">||</span><span class="w"> </span><span class="cp">$body</span><span class="p">)</span><span class="w"></span>
<span class="w">        </span><span class="p">}</span><span class="w"></span>
<span class="w">    </span><span class="p">}</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>
</pre></div>



<a name="132669352"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/132669352" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#132669352">(Aug 24 2018 at 00:53)</a>:</h4>
<p>have to keep that in my back pocket...</p>



<a name="132669363"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/132669363" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#132669363">(Aug 24 2018 at 00:53)</a>:</h4>
<p>you can basically do <code>let foo = inline_never!(bar, something);</code> and the time spent evaluating <code>something</code> will show up in the profile labeled <code>bar</code></p>



<a name="132669426"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/132669426" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#132669426">(Aug 24 2018 at 00:54)</a>:</h4>
<p>yeah so we only ever lookup locals in the ever_inits map</p>



<a name="132669427"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/132669427" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#132669427">(Aug 24 2018 at 00:54)</a>:</h4>
<p>though this could plausibly change in the future</p>



<a name="132671582"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/132671582" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#132671582">(Aug 24 2018 at 02:06)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> let’s get into it whenever you want/like <span class="emoji emoji-1f642" title="slight smile">:slight_smile:</span></p>



<a name="132704405"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/132704405" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#132704405">(Aug 24 2018 at 16:16)</a>:</h4>
<p><span class="user-mention" data-user-id="116122">@simulacrum</span> does this look correct to you ? <a href="https://github.com/rust-lang-nursery/rustc-perf/pull/278" target="_blank" title="https://github.com/rust-lang-nursery/rustc-perf/pull/278">https://github.com/rust-lang-nursery/rustc-perf/pull/278</a></p>



<a name="132704408"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/132704408" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#132704408">(Aug 24 2018 at 16:16)</a>:</h4>
<p>oh but there's CI so we'll see soon enough :)</p>



<a name="132704428"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/132704428" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#132704428">(Aug 24 2018 at 16:17)</a>:</h4>
<p><span class="user-mention" data-user-id="116113">@lqd</span> Left a comment, but looks good</p>



<a name="132704471"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/132704471" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#132704471">(Aug 24 2018 at 16:18)</a>:</h4>
<p>only one run coming up</p>



<a name="132704542"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/132704542" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#132704542">(Aug 24 2018 at 16:20)</a>:</h4>
<p>done</p>



<a name="132704556"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/132704556" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#132704556">(Aug 24 2018 at 16:21)</a>:</h4>
<p>Ping me when CI passes but I'll try to check in later today as well</p>



<a name="132704566"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/132704566" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#132704566">(Aug 24 2018 at 16:21)</a>:</h4>
<p>how long does CI usually take ?</p>



<a name="132704686"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/132704686" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#132704686">(Aug 24 2018 at 16:24)</a>:</h4>
<p>(answering my own question, and for people at home, from travis' history, around 30-40mins)</p>



<a name="132704844"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/132704844" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#132704844">(Aug 24 2018 at 16:28)</a>:</h4>
<p>And this is with servo's and cargo removed because benchmarks are so slow....</p>



<a name="132706409"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/132706409" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#132706409">(Aug 24 2018 at 16:59)</a>:</h4>
<p><span class="user-mention" data-user-id="116122">@simulacrum</span> I waited patiently for it ... to fail, because even though I knew a Cargo.lock was needed, the crate .gitignore'd and I didn't notice :)</p>



<a name="132710038"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/132710038" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#132710038">(Aug 24 2018 at 18:04)</a>:</h4>
<p><span class="user-mention" data-user-id="116122">@simulacrum</span> CI's green <a href="https://github.com/rust-lang-nursery/rustc-perf/pull/278" target="_blank" title="https://github.com/rust-lang-nursery/rustc-perf/pull/278">https://github.com/rust-lang-nursery/rustc-perf/pull/278</a></p>



<a name="132942125"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/132942125" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#132942125">(Aug 28 2018 at 19:29)</a>:</h4>
<p>ok so I automated a bit of the timings similar to rustc-perf (but I can't use <code>perf</code> so it's just manual), it's more destined to be informative (as I don't have the same exact profiles as perf.rlo, and I might have made mistakes) but this is on the nightly from 2 days ago, looking good I think (if accurate...):</p>
<table>
<thead>
<tr>
<th>crate</th>
<th align="right">version</th>
<th align="right"><code>cargo check</code> range</th>
<th align="right">NLL <code>cargo check</code> range</th>
<th align="right">min ratio</th>
</tr>
</thead>
<tbody>
<tr>
<td>cargo</td>
<td align="right">perf.rlo – 0.29.0 69d61e</td>
<td align="right">8158 ms - 8879 ms</td>
<td align="right">8953 ms - 9139 ms</td>
<td align="right">1.09</td>
</tr>
<tr>
<td>cargo</td>
<td align="right">master – 0.30.0 4e53ce</td>
<td align="right">8512 ms - 8856 ms</td>
<td align="right">9342 ms - 9374 ms</td>
<td align="right">1.09</td>
</tr>
<tr>
<td>clap-rs</td>
<td align="right">perf.rlo – 2.29.0</td>
<td align="right">4241 ms - 4486 ms</td>
<td align="right">5342 ms - 5552 ms</td>
<td align="right">1.26</td>
</tr>
<tr>
<td>clap-rs</td>
<td align="right">latest – 2.32.0</td>
<td align="right">2674 ms - 2720 ms</td>
<td align="right">2936 ms - 2968 ms</td>
<td align="right">1.09</td>
</tr>
<tr>
<td>html5ever</td>
<td align="right">perf.rlo – 0.5.4</td>
<td align="right">2203 ms - 2394 ms</td>
<td align="right">TODO</td>
<td align="right">TODO</td>
</tr>
<tr>
<td>html5ever</td>
<td align="right">latest – 0.22.3</td>
<td align="right">1416 ms - 1449 ms</td>
<td align="right">1532 ms - 1564 ms</td>
<td align="right">1.08</td>
</tr>
<tr>
<td>hyper</td>
<td align="right">perf.rlo – 0.5.0</td>
<td align="right">1584 ms - 1650 ms</td>
<td align="right">1687 ms - 1773 ms</td>
<td align="right">1.06</td>
</tr>
<tr>
<td>hyper</td>
<td align="right">latest – 0.12.7</td>
<td align="right">2311 ms - 2464 ms</td>
<td align="right">2454 ms - 2742 ms</td>
<td align="right">1.06</td>
</tr>
<tr>
<td>inflate</td>
<td align="right">perf.rlo – 0.1.0</td>
<td align="right">1836 ms - 1882 ms</td>
<td align="right">2286 ms - 2369 ms</td>
<td align="right">1.24</td>
</tr>
<tr>
<td>inflate</td>
<td align="right">latest – 0.4.3</td>
<td align="right">507 ms - 537 ms</td>
<td align="right">540 ms - 629 ms</td>
<td align="right">1.06</td>
</tr>
<tr>
<td>piston-image</td>
<td align="right">perf.rlo – 0.10.3</td>
<td align="right">2279 ms - 2490 ms</td>
<td align="right">2438 ms - 2597 ms</td>
<td align="right">1.07</td>
</tr>
<tr>
<td>piston-image</td>
<td align="right">latest – 0.19.0</td>
<td align="right">2727 ms - 2944 ms</td>
<td align="right">2912 ms - 2948 ms</td>
<td align="right">1.06</td>
</tr>
<tr>
<td>ripgrep</td>
<td align="right">perf.rlo – 0.8.1 a383d5</td>
<td align="right">1284 ms - 1326 ms</td>
<td align="right">1374 ms - 1465 ms</td>
<td align="right">1.07</td>
</tr>
<tr>
<td>ripgrep</td>
<td align="right">master – 0.8.1 d857ad</td>
<td align="right">1310 ms - 1315 ms</td>
<td align="right">1404 ms - 1551 ms</td>
<td align="right">1.07</td>
</tr>
<tr>
<td>serde</td>
<td align="right">perf.rlo – 1.0.37 6e206c</td>
<td align="right">5273 ms - 5324 ms</td>
<td align="right">5886 ms - 6241 ms</td>
<td align="right">1.11</td>
</tr>
<tr>
<td>serde</td>
<td align="right">master – 1.0.70 4e54aa</td>
<td align="right">5785 ms - 6277 ms</td>
<td align="right">6023 ms - 6088 ms</td>
<td align="right">1.04</td>
</tr>
<tr>
<td>style-servo</td>
<td align="right">perf.rlo</td>
<td align="right">32209 ms - 33289 ms</td>
<td align="right">34631 ms - 35339 ms</td>
<td align="right">1.07</td>
</tr>
<tr>
<td>syn</td>
<td align="right">perf.rlo – 0.11.11</td>
<td align="right">1131 ms - 1206 ms</td>
<td align="right">1217 ms - 1258 ms</td>
<td align="right">1.07</td>
</tr>
<tr>
<td>syn</td>
<td align="right">latest – 0.14.5</td>
<td align="right">2031 ms - 2138 ms</td>
<td align="right">2111 ms - 2259 ms</td>
<td align="right">1.04</td>
</tr>
<tr>
<td>ucd</td>
<td align="right">perf.rlo</td>
<td align="right">6533 ms - 6809 ms</td>
<td align="right">54169 ms - 55417 ms</td>
<td align="right">I don't wanna talk about it ok it's 8.29</td>
</tr>
<tr>
<td>webrender</td>
<td align="right">perf.rlo – 0.57.2 bb354a</td>
<td align="right">4152 ms - 4369 ms</td>
<td align="right">4480 ms - 4826 ms</td>
<td align="right">1.08</td>
</tr>
<tr>
<td>webrender</td>
<td align="right">master – 0.57.2 cf9b7803</td>
<td align="right">4312 ms - 4609 ms</td>
<td align="right">4618 ms - 4816 ms</td>
<td align="right">1.07</td>
</tr>
</tbody>
</table>



<a name="132942145"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/132942145" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#132942145">(Aug 28 2018 at 19:29)</a>:</h4>
<p>\o/ nice</p>



<a name="132942355"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122657-t-compiler/wg-nll/topic/perf.rlo%20benchmarks/near/132942355" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/122657-t-compiler/wg-nll/topic/perf.2Erlo.20benchmarks.html#132942355">(Aug 28 2018 at 19:32)</a>:</h4>
<p>(that was with 3 warmups builds + 5 timed builds, and the min ratio between those, a mean would be more realistic but less good looking ;)</p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>